如何用正则表达式支持UTF-16编码处理长尾词疑问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计452个文字,预计阅读时间需要2分钟。
正则表达式用于匹配字符串,其中u修饰符表示:此修饰符标识能够识别大于uFFFF的Unicode字符。也就是说,会正确处理大于uFFFF的Unicode字符。同时,也会正确处理四个字节的UTF-16编码。此修饰符是ES2015新增的,更多正则表达式新特性可以参考ES2015正则表达式。
正则表达式u修饰符:
此修饰符标识能够正确处理大于\uFFFF的Unicode字符。
也就是说,会正确处理四个字节的UTF-16编码。
此修饰符是ES2015新增,更多正则表达式新特性可以参阅ES2015 正则表达式新增特性一章节。
更多正则表达式教程可以参阅正则表达式教程板块。
代码实例:
console.log(/^\uD842/u.test("\uD842\uDFB7"))
输出false,由于"\uD842\uDFB7"是一个四个字节的UTF-16编码,代表一个字符,所以如果正则表达式带有u修饰符,那么就能够识别它。
console.log(/^\uD842/.test("\uD842\uDFB7"))
输出true;不加u修饰符,那么就无法将四个字节的UTF-16编码识别为一个字符,所以就可以产生匹配。
本文共计452个文字,预计阅读时间需要2分钟。
正则表达式用于匹配字符串,其中u修饰符表示:此修饰符标识能够识别大于uFFFF的Unicode字符。也就是说,会正确处理大于uFFFF的Unicode字符。同时,也会正确处理四个字节的UTF-16编码。此修饰符是ES2015新增的,更多正则表达式新特性可以参考ES2015正则表达式。
正则表达式u修饰符:
此修饰符标识能够正确处理大于\uFFFF的Unicode字符。
也就是说,会正确处理四个字节的UTF-16编码。
此修饰符是ES2015新增,更多正则表达式新特性可以参阅ES2015 正则表达式新增特性一章节。
更多正则表达式教程可以参阅正则表达式教程板块。
代码实例:
console.log(/^\uD842/u.test("\uD842\uDFB7"))
输出false,由于"\uD842\uDFB7"是一个四个字节的UTF-16编码,代表一个字符,所以如果正则表达式带有u修饰符,那么就能够识别它。
console.log(/^\uD842/.test("\uD842\uDFB7"))
输出true;不加u修饰符,那么就无法将四个字节的UTF-16编码识别为一个字符,所以就可以产生匹配。

