kyl*_*ito 12 javascript regex unicode character-properties xregexp
我想在希腊文中使用这个正则表达式新的RegExp("\ b"+ pat +"\ b"),但"\ b"元字符仅支持ASCII字符.
我尝试过XregExp库,但我没有设法解决这个问题.
任何建议将不胜感激.
所以答案是,你不能使用 JavaScript 本机机制或任何使用这些机制的库来按照你想要的方式匹配单词。正如您已经说过的, \\b 匹配单词。单词必须由单词字符组成。在 JavaScript 中(实际上其他正则表达式实现中的单词字符是az、AZ、0-9 和 _。但许多其他语言只是以与 JavaScript 不同的方式实现 \\b 元字符。
\n\n答案“JavaScript 不支持 Unicode”有点过于简单,事实上完全错误。JavaScript 只是不使用 unicode 作为字符类。如果 JavaScript 不支持 unicode,你甚至不能在字符串文字中使用 unicode 字符,当然这在 JavaScript 中是可能的。
\n\n根据ECMA 262 标准(ECMAScript)(第 15.10.2.6 节):
\n\n[...]\n产生式 Assertion :: \\ b 通过返回一个内部 AssertionTester 闭包进行评估,该闭包采用 State \nargument x 并执行以下操作:
\n\n抽象操作 IsWordChar 采用整数参数 e 并执行以下操作:
\n\n这只是表明, \\b 使用“isWordChar”算法来检查您尝试匹配的内容是否实际上是一个单词。在“isWordChar”的定义中,您可以看到哪些字符将为“isWordChar”返回 true 的确切定义。
\n\n在我看来,这与所使用的字符集完全无关。这里既不兼容 ASCII 也不兼容 UNICODE。就这63个字符。
\n| 归档时间: |
|
| 查看次数: |
2652 次 |
| 最近记录: |