日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用javaScript计算中文字符串长度

發(fā)布時(shí)間:2024/3/24 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用javaScript计算中文字符串长度 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? 今天,做網(wǎng)頁文字版網(wǎng)絡(luò)拓?fù)鋱D時(shí),遇到一個(gè)對齊問題,當(dāng)某一行中出現(xiàn)中文字符時(shí),就會出現(xiàn)對不齊。

? ? 上網(wǎng)搜索,發(fā)現(xiàn)很多文章寫了使用Unicode編碼來識別的原理,但并沒有準(zhǔn)確的中文Unicode編碼范圍;所以,就親自查閱Unicode編碼庫(http://www.unicode.org/)官網(wǎng)首頁就有最新版本。

? ? 準(zhǔn)確的中文Unicode編碼范圍:4E00-9FBF

? ? 下面 是計(jì)算中文字符串長度的一種方法:

var str = "測試用字符串a(chǎn)bc"; var len = 0; //遍歷字符串,以字符的Unicode編碼識別中文 for(var key in str) { //中文字符在Unicode編碼中占據(jù) 0x4E00~0x9FBF 字段if( (str.charCodeAt(key) >= 0x4E00) && (str.charCodeAt(key) <= 0x9FBF) ){len += 2;}else{len ++;} }
? ? 為了方便查閱,附上UCS-2 編碼范圍:

? ? Unicode 到目前為止所定義的五個(gè)平面中,第0平面(BMP)最為重要. 其編碼分布如下.
  注:中文范圍 4E00-9FBF:CJK 統(tǒng)一表意符號 (CJK Unified Ideographs)
  0000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)
  0080-00FF:C1控制符及拉丁文補(bǔ)充-1 (C1 Control and Latin 1 Supplement)
  0100-017F:拉丁文擴(kuò)展-A (Latin Extended-A)
  0180-024F:拉丁文擴(kuò)展-B (Latin Extended-B)
  0250-02AF:國際音標(biāo)擴(kuò)展 (IPA Extensions)
  02B0-02FF:空白修飾字母 (Spacing Modifiers)
  0300-036F:結(jié)合用讀音符號 (Combining Diacritics Marks)
  0370-03FF:希臘文及科普特文 (Greek and Coptic) ?Microsoft Word0400-04FF:西里爾字母 (Cyrillic)
  0500-052F:西里爾字母補(bǔ)充 (Cyrillic Supplement)
  0530-058F:亞美尼亞語 (Armenian)
  0590-05FF:希伯來文 (Hebrew)
  0600-06FF:阿拉伯文 (Arabic)
  0700-074F:敘利亞文 (Syriac)
  0750-077F:阿拉伯文補(bǔ)充 (Arabic Supplement)
  0780-07BF:馬爾代夫語 (Thaana)
  07C0-077F:西非書面語言 (N'Ko)
  0800-085F:阿維斯塔語及巴列維語 (Avestan and Pahlavi)
  0860-087F:Mandaic
  0880-08AF:撒馬利亞語 (Samaritan)
  0900-097F:天城文書 (Devanagari)
  0980-09FF:孟加拉語 (Bengali)
  0A00-0A7F:錫克教文 (Gurmukhi)
  0A80-0AFF:古吉拉特文 (Gujarati)
  0B00-0B7F:奧里亞文 (Oriya)
  0B80-0BFF:泰米爾文 (Tamil)
  0C00-0C7F:泰盧固文 (Telugu)
  0C80-0CFF:卡納達(dá)文 (Kannada)
  0D00-0D7F:德拉維族語 (Malayalam)
  0D80-0DFF:僧伽羅語 (Sinhala)
  0E00-0E7F:泰文 (Thai)
  0E80-0EFF:老撾文 (Lao)
  0F00-0FFF:藏文 (Tibetan)
  1000-109F:緬甸語 (Myanmar)
  10A0-10FF:格魯吉亞語 (Georgian)
  1100-11FF:朝鮮文 (Hangul Jamo)
  1200-137F:埃塞俄比亞語 (Ethiopic)
  1380-139F:埃塞俄比亞語補(bǔ)充 (Ethiopic Supplement)
  13A0-13FF:切羅基語 (Cherokee)
  1400-167F:統(tǒng)一加拿大土著語音節(jié) (Unified Canadian Aboriginal Syllabics)
  1680-169F:歐甘字母 (Ogham)
  16A0-16FF:如尼文 (Runic)
  1700-171F:塔加拉語 (Tagalog)
  1720-173F:Hanunóo
  1740-175F:Buhid
  1760-177F:Tagbanwa
  1780-17FF:高棉語 (Khmer)
  1800-18AF:蒙古文 (Mongolian)
  18B0-18FF:Cham
  1900-194F:Limbu
  1950-197F:德宏泰語 (Tai Le)
  1980-19DF:新傣仂語 (New Tai Lue)
  19E0-19FF:高棉語記號 (Kmer Symbols)
  1A00-1A1F:Buginese
  1A20-1A5F:Batak
  1A80-1AEF:Lanna
  1B00-1B7F:巴厘語 (Balinese)
  1B80-1BB0:巽他語 (Sundanese)
  1BC0-1BFF:Pahawh Hmong
  1C00-1C4F:雷布查語(Lepcha)
  1C50-1C7F:Ol Chiki
  1C80-1CDF:曼尼普爾語 (Meithei/Manipuri)
  1D00-1D7F:語音學(xué)擴(kuò)展 (Phonetic Extensions)
  1D80-1DBF:語音學(xué)擴(kuò)展補(bǔ)充 (Phonetic Extensions Supplem ?unicodeent)
  1DC0-1DFF:結(jié)合用讀音符號補(bǔ)充 (Combining Diacritics Marks Supplement)
  1E00-1EFF:拉丁文擴(kuò)充附加 (Latin Extended Additional)
  1F00-1FFF:希臘語擴(kuò)充 (Greek Extended)
  2000-206F:常用標(biāo)點(diǎn) (General Punctuation)
  2070-209F:上標(biāo)及下標(biāo) (Superscripts and Subscripts)
  20A0-20CF:貨幣符號 (Currency Symbols)
  20D0-20FF:組合用記號 (Combining Diacritics Marks for Symbols)
  2100-214F:字母式符號 (Letterlike Symbols)
  2150-218F:數(shù)字形式 (Number Form)
  2190-21FF:箭頭 (Arrows)
  2200-22FF:數(shù)學(xué)運(yùn)算符 (Mathematical Operator)
  2300-23FF:雜項(xiàng)工業(yè)符號 (Miscellaneous Technical)
  2400-243F:控制圖片 (Control Pictures)
  2440-245F:光學(xué)識別符 (Optical Character Recognition)
  2460-24FF:封閉式字母數(shù)字 (Enclosed Alphanumerics)
  2500-257F:制表符 (Box Drawing)
  2580-259F:方塊元素 (Block Element)
  25A0-25FF:幾何圖形 (Geometric Shapes)
  2600-26FF:雜項(xiàng)符號 (Miscellaneous Symbols)
  2700-27BF:印刷符號 (Dingbats)
  27C0-27EF:雜項(xiàng)數(shù)學(xué)符號-A (Miscellaneous Mathematical Symbols-A)
  27F0-27FF:追加箭頭-A (Supplemental Arrows-A)
  2800-28FF:盲文點(diǎn)字模型 (Braille Patterns)
  2900-297F:追加箭頭-B (Supplemental Arrows-B)
  2980-29FF:雜項(xiàng)數(shù)學(xué)符號-B (Miscellaneous Mathematical Symbols-B)
  2A00-2AFF:追加數(shù)學(xué)運(yùn)算符 (Supplemental Mathematical Operator)
  2B00-2BFF:雜項(xiàng)符號和箭頭 (Miscellaneous Symbols and Arrows)
  2C00-2C5F:格拉哥里字母 (Glagolitic)
  2C60-2C7F:拉丁文擴(kuò)展-C (Latin Extended-C)
  2C80-2CFF:古埃及語 (Coptic)
  2D00-2D2F:格魯吉亞語補(bǔ)充 (Georgian Supplement)
  2D30-2D7F:提非納文 (Tifinagh)
  2D80-2DDF:埃塞俄比亞語擴(kuò)展 (Ethiopic Extended)
  2E00-2E7F:追加標(biāo)點(diǎn) (Supplemental Punctuation)
  2E80-2EFF:CJK 部首補(bǔ)充 (CJK Radicals Supplement)
  2F00-2FDF:康熙字典部首 (Kangxi Radicals)
  2FF0-2FFF:表意文字描述符 (Ideographic Description Characters)
  3000-303F:CJK 符號和標(biāo)點(diǎn) (CJK Symbols and Punctuation)
  3040-309F:日文平假名 (Hiragana)
  30A0-30FF:日文片假名 (Katakana)
  3100-312F:注音字母 (Bopomofo)
  3130-318F:朝鮮文兼容字母 (Hangul Compatibility Jamo)
  3190-319F:象形字注釋標(biāo)志 (Kanbun)
  31A0-31BF:注音字母擴(kuò)展 (Bopomofo Extended)
  31C0-31EF:CJK 筆畫 (CJK Strokes)
  31F0-31FF:日文片假名語音擴(kuò)展 (Katakana Phonetic Extensions)
  3200-32FF:封閉式 CJK 文字和月份 (Enclosed CJK Letters and Months)
  3300-33FF:CJK 兼容 (CJK Compatibility)
  3400-4DBF:CJK 統(tǒng)一表意符號擴(kuò)展 A (CJK Unified Ideographs Extension A)
  4DC0-4DFF:易經(jīng)六十四卦符號 (Yijing Hexagrams Symbols)
  4E00-9FBF:CJK 統(tǒng)一表意符號 (CJK Unified Ideographs)
  A000-A48F:彝文音節(jié) (Yi Syllables)
  A490-A4CF:彝文字根 (Yi Radicals)
  A500-A61F:Vai
  A660-A6FF:統(tǒng)一加拿大土著語音節(jié)補(bǔ)充 (Unified Canadian Aboriginal Syllabics Supplement)
  A700-A71F:聲調(diào)修飾字母 (Modifier Tone Letters)
  A720-A7FF:拉丁文擴(kuò)展-D (Latin Extended-D)
  A800-A82F:Syloti Nagri
  A840-A87F:八思巴字 (Phags-pa)
  A880-A8DF:Saurashtra
  A900-A97F:爪哇語 (Javanese)
  A980-A9DF:Chakma
  AA00-AA3F:Varang Kshiti
  AA40-AA6F:Sorang Sompeng
  AA80-AADF:Newari
  AB00-AB5F:越南傣語 (Vi?t Thái)
  AB80-ABA0:Kayah Li
  AC00-D7AF:朝鮮文音節(jié) (Hangul Syllables)
  D800-DBFF:High-half zone of UTF-16
  DC00-DFFF:Low-half zone of UTF-16
  E000-F8FF:自行使用區(qū)域 (Private Use Zone)
  F900-FAFF:CJK 兼容象形文字 (CJK Compatibility Ideographs)
  FB00-FB4F:字母表達(dá)形式 (Alphabetic Presentation Form)
  FB50-FDFF:阿拉伯表達(dá)形式A (Arabic Presentation Form-A)
  FE00-FE0F:變量選擇符 (Variation Selector)
  FE10-FE1F:豎排形式 (Vertical Forms)
  FE20-FE2F:組合用半符號 (Combining Half Marks)
  FE30-FE4F:CJK 兼容形式 (CJK Compatibility Forms)
  FE50-FE6F:小型變體形式 (Small Form Variants)
  FE70-FEFF:阿拉伯表達(dá)形式B (Arabic Presentation Form-B)
  FF00-FFEF:半型及全型形式 (Halfwidth and Fullwidth Form)
  FFF0-FFFF:特殊 (Specials)


轉(zhuǎn)載請注明來自Master.R(石碩)的CSDN博客:blog.csdn.net/shishuo365? 如有疑問請發(fā)郵件shishuo365#126.com(將#更換為@)

總結(jié)

以上是生活随笔為你收集整理的使用javaScript计算中文字符串长度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。