有一种方法可以在原生 JavaScript 中使用“\p{L}”之类的模式吗?
(我想这是一种与 perl 兼容的语法)
我首先对firefox支持和webkit感兴趣,可能
有一种方法可以在原生 JavaScript 中使用“\p{L}”之类的模式吗?
(我想这是一种与 perl 兼容的语法)
我首先对firefox支持和webkit感兴趣,可能
不,\p{..}
任何大型浏览器都不原生支持。但是,如果您使用XRegExp 库并且它是Unicode 插件,它确实可以在 JavaScript 中使用。
不,Javascript 的语法略有不同。要捕获 unicode,您必须使用字符选择器,例如\uXXXX
. 但是,在实践中,如果您的页面和文件采用 UTF-8,在范围内设置非 ASCII 字符[абвг]
也可以。
很不幸的是,不行。您只能在通常的语法中指定一组字符,将字符和范围写在括号中,但这会变得很尴尬,因为例如字母分散在 Unicode 空间周围,它们之间还有其他字符。
有一个低效的解决方法:从 Unicode 站点获取 UnicodeData.txt 文件,将其内容作为数据放入您的 JavaScript 代码中,然后对其进行解析。然后您可以将数据保存在包含Unicode 属性的对象数组中,例如gc(通用类别),它告诉您字符是否为字母。但即便如此,您也只能将数据方便地用于简单的测试,而不是可以用作正则表达式的组成部分。
理论上,您可以使用数据来构造正则表达式......但它会相当大。