2013-12-17 198 views
1

問題是,當我嘗試測試它時,它始終返回false。你有什麼想法,爲什麼?RegEx.Test返回始終爲false

$('MyInput').mouseout(function() { 
    alert($('MyInput').val()); // it is "яяqqåå" 
    alert(/^[\p{L}0-9\s\.\\\/\-]{2,20}$/.test($('MyInput').val())); 
}); 
+0

請參閱:http://stackoverflow.com/questions/280712/javascript-unicode – JotaBe

+0

是的,但我想接受西裏爾字母。 – user2831001

回答

1

這是因爲使用Javascript正則表達式不支持\p{L}

即使這樣返回false:

/^\p{L}+/.test('a'); 

您可以使用該毯的unicode範圍來匹配您的輸入文字:

/^[\u0000-\uffff\d\s.\\\/-]{2,20}$/.test('яяqqåå'); 
//=> returns true 
+0

那麼如何包含所有語言的所有字母?因爲從我看到\ p {L}那樣做。附:我在C#語言中使用 – user2831001

+0

檢查更新的答案 – anubhava

+0

是的,但我想接受所有西裏爾字母。 – user2831001