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