gpt4 book ai didi

JavaScript 正则表达式与 unicode 字符不匹配

转载 作者:行者123 更新时间:2023-12-03 00:10:40 25 4
gpt4 key购买 nike

我注意到 Javascript 正则表达式解析中存在异常行为。

以下示例说明了该问题。

如果字符“a”通过十六进制表示 0x61 (在 unicode \u61 中),我期望使用以下正则表达式进行匹配:

v‌‌ar a = String.fromCharCode(0x61) // "a"
a.match(/^[\u61]$/g) // does not match

不匹配。

但奇怪的是,下面的表达式确实匹配:

a.match(/^[\u61-\u61]$/g) // does match!

注意:这可能是 Chrome 特有的 Javascript 错误。

最佳答案

解决方案:

使用四位 unicode 标识符(包括冗余位)。

a.match(/^[\u0061]$/g) // matches

您还可以使用大括号表示法。如果匹配5位或更多位的unicode,需要花括号。请注意 u 标志,它启用大括号支持。

a.match(/^[\u{1f601}]$/ug)

关于JavaScript 正则表达式与 unicode 字符不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54747705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com