3

有一种方法可以在原生 JavaScript 中使用“\p{L}”之类的模式吗?

(我想这是一种与 perl 兼容的语法)

我首先对firefox支持和webkit感兴趣,可能

4

4 回答 4

3

不,\p{..}任何大型浏览器都不原生支持。但是,如果您使用XRegExp 库并且它是Unicode 插件,它确实可以在 JavaScript 中使用。

于 2012-05-28T06:11:50.640 回答
1

不,Javascript 的语法略有不同。要捕获 unicode,您必须使用字符选择器,例如\uXXXX. 但是,在实践中,如果您的页面和文件采用 UTF-8,在范围内设置非 ASCII 字符[абвг]也可以。

http://www.javascriptkit.com/jsref/regexp.shtml

于 2012-01-21T14:39:43.367 回答
1

很不幸的是,不行。您只能在通常的语法中指定一组字符,将字符和范围写在括号中,但这会变得很尴尬,因为例如字母分散在 Unicode 空间周围,它们之间还有其他字符。

有一个低效的解决方法:从 Unicode 站点获取 UnicodeData.txt 文件,将其内容作为数据放入您的 JavaScript 代码中,然后对其进行解析。然后您可以将数据保存在包含Unicode 属性的对象数组中,例如gc(通用类别),它告诉您字符是否为字母。但即便如此,您也只能将数据方便地用于简单的测试,而不是可以用作正则表达式的组成部分。

理论上,您可以使用数据来构造正则表达式......但它会相当大。

于 2012-01-21T15:17:22.090 回答
1

在这里找到的图书馆:

http://inimino.org/~inimino/blog/javascript_cset

似乎对我有用,而且相当小并且独立于其他库。

于 2012-08-08T19:40:07.813 回答