是否可以在javascript的正则表达式中使用俄语字符?
也许使用\ p {Cyrillic}?
如果是,请提供使用的基本示例。
示例:
var str1 = "абв прв фву";
var regexp = new RegExp("[вф]\\b", "g");
alert(str1.replace(regexp, "X"));
我希望得到:абXпрX
答案 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。