【发布时间】:2019-02-18 12:49:15
【问题描述】:
我注意到 Javascript 正则表达式解析中的异常行为。
下面的例子说明了这个问题。
如果字符“a”通过其十六进制表示 0x61(在 unicode 中 \u61)表示,我希望使用以下正则表达式进行匹配:
var a = String.fromCharCode(0x61) // "a"
a.match(/^[\u61]$/g) // does not match
不匹配。
但奇怪的是,下面的表达式确实匹配:
a.match(/^[\u61-\u61]$/g) // does match!
注意:这可能是特定于 Chrome 的 Javascript 错误。
【问题讨论】:
-
为什么不使用
\x61?请注意,对于 ES6+,您还可以使用a.match(/^\u{61}$/u)
标签: javascript regex google-chrome unicode