是否可以在JavaScript的正則表達式中使用俄文字符?
也許使用\ p {Cyrillic}?JavaScript中的正則表達式與西里爾文(俄語)設置
如果是,請提供使用的基本示例。
的例子:
var str1 = "абв прв фву";
var regexp = new RegExp("[вф]\\b", "g");
alert(str1.replace(regexp, "X"));
我期望能獲得:абXпрX
是否可以在JavaScript的正則表達式中使用俄文字符?
也許使用\ p {Cyrillic}?JavaScript中的正則表達式與西里爾文(俄語)設置
如果是,請提供使用的基本示例。
的例子:
var str1 = "абв прв фву";
var regexp = new RegExp("[вф]\\b", "g");
alert(str1.replace(regexp, "X"));
我期望能獲得:абXпрX
它應該工作,如果你只是保存JavaScript文件中UTF8。那麼你應該可以輸入字符串中的任何字符。
編輯: 剛剛作出了一個簡單的例子來自維基百科的一些cryllic字符:
var cryllic = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
cryllic.match('л.+а')[0];
// returns as expected: "лмнопрстуфхцчшщъыьэюяа"
根據this:
的JavaScript,它不會通過提供任何 Unicode支持其RegExp 類,支持\ uFFFF爲 ,匹配單個Unicode代碼點 作爲par t的字符串語法。
所以你至少可以使用代碼點,但看起來沒有什麼更多(沒有類)。
也檢查出this duplicate你的問題。
該網站不正確。 JavaScript在正則表達式中支持Unicode。 – 2009-12-31 17:54:59
正如我在上面引用的,我找不到比單個代碼點更多的參考資料,請參閱http://www.w3schools.com/jsref/jsref_obj_regexp.asp你有源嗎? – 2009-12-31 18:03:38
這是一篇關於JavaScript regular expressions and unicode的好文章。 JavaScript中的字符串是16位,因此字符串和RegExp對象可以包含Unicode字符,但大多數特殊字符(如'\ b','\ d','\ w')僅支持ascii。所以你的正則表達式不能按預期工作,因爲使用'\ b'。看起來你必須找到一種不同的方式來檢測字邊界。
但如果我試試這個:var str1 =「абв」; var regexp = new RegExp(「[бв] \ b」,「g」); alert(str1.replace(regexp,「е」));它不起作用。 – samuel 2009-12-31 17:18:45
你的文件是100%UTF-8編碼的嗎?你可以嘗試一個字符嗎? – 2009-12-31 18:01:26
似乎字邊界'\ b'工作不正常。如果我刪除它,它會正常工作,所以請嘗試用'[]'或類似的東西替換它。 – poke 2009-12-31 18:08:44