【问题标题】:how to use unicode character groups in javascript's regexs?如何在 javascript 正则表达式中使用 unicode 字符组?
【发布时间】:2012-01-21 14:28:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript regex unicode character-properties


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      很遗憾,没有。您只能以通常的语法指定一组字符,在括号中写入字符和范围,但这变得很尴尬,因为例如字母散布在 Unicode 空间周围,中间夹杂着其他字符。

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

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

      【讨论】:

      • 好的..这很糟糕。这是令人难以置信的。谢谢你的回答顺便说一句:)
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        在此处找到的库:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-07-31
          • 2014-10-13
          • 1970-01-01
          • 1970-01-01
          • 2013-12-18
          • 2012-03-15
          • 1970-01-01
          相关资源
          最近更新 更多