猿问

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

var s = '吉林?';

s.length; //4

用js输出s.length的是4,但是变量s的字符串的个数是3,如何通过代码准确得到变量 s 的字符串个数(3)?


慕神8447489
浏览 1438回答 2
2回答

守着星空守着你

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)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答