我試圖讓字母數字和一些特殊字符Javascript成爲正則表達式字母,數字和特殊字符
var regx = /^[A-Za-z0-9._-\] ]+$/;
我試着用斜槓轉義]的跡象,但它仍然不工作。 我缺少什麼
我試圖讓字母數字和一些特殊字符Javascript成爲正則表達式字母,數字和特殊字符
var regx = /^[A-Za-z0-9._-\] ]+$/;
我試着用斜槓轉義]的跡象,但它仍然不工作。 我缺少什麼
您還需要躲避-
字符:
擺脫-
並不總是必要的。然而,在這裏,它被用在方括號內,這使得JavaScript引擎假定你正在試圖指定範圍從_-]
導致「字符類中的範圍失序」錯誤。
注意/[_-a]/
是有效的正則表達式匹配和字符_
,`
和a
(ASCII碼95 ... 97);這可能不是預期的結果。
如果您嘗試您正則表達式在網上正則表達式測試儀像regex101你會得到錯誤:
你必須使用\-
逃脫-
:
^[A-Za-z0-9._\-\] ]+$
Btw,yo ü可以縮短你的正則表達式來:
^[\w.\-% ]+$
編輯:添加正則表達式的評論:
^[\w.-\]\[ #$>()@{}'"]+$
我修改了正則表達式:var regx = /^[A-Za-z0-9._-%] + $ /;我包括%,現在當我在Chrome中運行它時,我在字符類中出現語法錯誤範圍失序。我想包含像#$> []()@ {}'「和字母數字的特殊字符。 – Mary 2014-08-28 20:40:18
@Mary我已經更新了我的回答以供您評論。正則表達式有需要轉義的特殊字符,所以短劃線是一個你需要將它轉義爲\ - 。順便說一句,如果你的問題得到解答,你可以考慮將你的問題標記爲已解決 – 2014-08-28 20:50:35
你是什麼樣的測試,什麼地方出了錯? – 2014-08-28 20:01:28
我相信你的意思是反斜槓(\\),而不是正斜槓(/)。 – 2014-08-28 20:03:21