使用Cyrillic(俄语)设置的javascript中的正则表达式

时间:2009-12-31 16:49:42

标签: javascript regex

是否可以在javascript的正则表达式中使用俄语字符?
也许使用\ p {Cyrillic}?

如果是,请提供使用的基本示例。

示例:

var str1 = "абв прв фву";
var regexp = new RegExp("[вф]\\b", "g");

 alert(str1.replace(regexp, "X"));

我希望得到:абXпрX

3 个答案:

答案 0 :(得分:6)

如果您只是将JavaScript文件保存为UTF8,它应该可以正常工作。然后你应该能够在字符串中输入任何字符。

修改 刚刚用维基百科的一些哭泣字符做了一个简单的例子:

var cryllic = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
cryllic.match( 'л.+а' )[0];
// returns as expected: "лмнопрстуфхцчшщъыьэюяа"

答案 1 :(得分:6)

这是关于JavaScript regular expressions and unicode的好文章。 JavaScript中的字符串是16位,因此字符串和RegExp对象可以包含unicode字符,但大多数特殊字符如'\ b','\ d','\ w'仅支持ascii。因此,由于使用'\ b',您的正则表达式无法按预期工作。看来你必须找到一种不同的方法来检测字边界。

答案 2 :(得分:1)

根据this

  

JavaScript,不提供任何内容   通过其RegExp支持Unicode   class,确实支持\ uFFFF   匹配单个Unicode代码点   作为其字符串语法的一部分。

所以你至少可以使用代码点,但似乎没有更多(没有类)。

同时查看问题的this duplicate