
let str = ' 15556268842 '; console.warn(str.length); // 13 大家可以复制这个字符串到控制打印下。这个数据是从 excel 表中导出来的,疑似字符串前后各有一个隐藏的字符,但是不占位。。。纳尼?
1 BlackGrasshopper 2018 年 5 月 7 日 空格啊,怎么没占位 |
2 zjp 2018 年 5 月 7 日 via Android 两个零宽字符 前面有一个 U+202D 后面一个 U+202C 找个小工具检测下字符不就行了 btw U+202D 很好玩… |
3 songz 2018 年 5 月 7 日 复制下来,用左右键移动光标,会有两个隐藏的字符,按下左或右光标不会移动 |
4 yuuk OP 很奇怪,发布到 V2EX 后就被解析出空格了。我控制台里面的截图:  |
5 rabbbit 2018 年 5 月 7 日 我这输出是 15, chrome let str = ' 15556268842 '; console.warn(str.length); // 15 |
8 rabbbit 2018 年 5 月 7 日 讲个好玩的坑 ''.length // 2 Array.from('').length // 1 |
9 lommo 2018 年 5 月 7 日 \u0020\u0031\u0035\u0035\u0035\u0036\u0032\u0036\u0038\u0038\u0034\u0032\u0020\u202c |
10 input2output 2018 年 5 月 7 日 键盘 左右移动就感觉到了 |
11 broker 2018 年 5 月 7 日 还有一个 U+202E 也比较好玩 this[''&&'alert']`1` |
12 gongzhang 2018 年 5 月 7 日 Unicode 字符串长度有多种含义,看你要哪种: 1. 存储字节数 2. UTF8 或 UTF16 编码后的编码单元数 3. Unicode Scala 数 4. 最终显示出来的字符数 |
13 A3m0n 2018 年 5 月 7 日 |
14 linxiaoziruo 2018 年 5 月 7 日 我打印出来 15 |