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

用JS怎样才能正确的得到字符串的长度?

用JS怎样才能正确的得到字符串的长度?

慕神8447489 2019-02-27 13:35:18
var s = '吉林?';s.length; //4用js输出s.length的是4,但是变量s的字符串的个数是3,如何通过代码准确得到变量 s 的字符串个数(3)?
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

s.match(/[\s\S]/gu).length

主要是正则表达式u标志符可以匹配4字节 Unicode 编码。

空字符串要处理一下。。。因为 match 返回 null。


正则表达式u是ES6的特性,同样的ES6的字符串迭代器也能正确处理 Unicode 编码:[...s].length等等写法。


我好奇地跑去 babel 测试了一下,发现了这群大触丧病的 hack:


s.match(/[\s\S]/gu)


s.match(/(?:[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g)


查看完整回答
反对 回复 2019-03-08
  • 2 回答
  • 0 关注
  • 1437 浏览
慕课专栏
更多

添加回答

举报

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