用JS怎样才能正确的得到字符串的长度？
```
var s = '吉林?';
s.length; //4
```
用js输出s.length的是4，但是变量s的字符串的个数是3，如何通过代码准确得到变量 s 的字符串个数（3）？
`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)
```