为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript如何取得字符串的真实字符数?大疑问

JavaScript如何取得字符串的真实字符数?大疑问

海绵宝宝撒 2018-12-20 18:15:50
最近学习JavaScript的String类型、UTF-16、String.length属性后,知道字符串的length属性会返回“16bits”码元的个数,如果字符串中存在32bits码位(2个码元表示1个字符)的字符,那么length就不能正确的反映字符串中的字符数量。疑问:应该如何去计算得到真实的字符数?假设有目标字符串 strText = "....." // 内容省略目前我还写不出来代码(js函数没学),但我看过了 codeCharAt()和 codePointAt()函数后,感觉可以用 codePointAt()来取得目标字符串 strText中指定索引字符的但这时候会存在一个问题:strText的字面量形式可能会对结果有影响吧。因为所有的unicode字符都可以通过 unnnn的形式来书写。比如字符串"string" 可以写作 "u0073u0074u0072u0069u006eu0067"。换句话说,当采用 unnnn的形式时,会不会造成codeCharAt()依次对 , u , 0 进行处理。。。同时,还有一个问题,我在上网查资料的时候,发现了这两篇文章:JS获取字符串实际长度!String length中文字符长度这两篇文章干的活我没看明白, 汉字的unicode范围是:0x4E00~0x9FA5,处于BMP(基本多语言平面)内,因此汉字只用一个最小单位即可表示。而这两篇文章是希望把汉字的长度弄成2,这有意义吗?我真没搞懂他们在干嘛,求指教,谢谢!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 353 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信