在js中,我使用正則表達式驗證來檢查我的輸入字符串是否與下面顯示的特殊字符匹配或不匹配。所以我使用RegExp對象的test()方法。無法在Javascript中創建RegExp項目
,但我總是得到一個異常錯誤說:
Uncaught SyntaxError: Invalid regular expression: /[^@/[]<>?:;,=|+"]/: Nothing to repeat
特殊字符,我想在輸入字符串檢查:
^ @/[ ] < > ? : ; , * = | + "
var str = "My Test String";
var re = new RegExp('[^@/\[\]\<\>\?:;,*=|\+\"]*');
var result = re.test(str);
alert(result);
我在代碼中做錯了什麼?
你爲什麼要添加實體*字符類*只匹配來自設備的單個字符?該錯誤是衆所周知的,在構造函數表示法中,您需要使用雙反斜槓來轉義特殊字符。此外,字符類開頭的'^'創建了* negated *字符類,因此您的正則表達式匹配除'@','/','['之外的任何內容,然後跟隨一系列模式。你打算使用'var re =/[@^<> \/[\]?:;,* = | +「] |&(?: quot | [gl] t); /'? –
或者' re =/[@^\/[\] <>?:;,* = | +「] /'夠了嗎? –