2014-08-28 108 views
1

我試圖讓字母數字和一些特殊字符Javascript成爲正則表達式字母,數字和特殊字符

var regx = /^[A-Za-z0-9._-\] ]+$/; 

我試着用斜槓轉義]的跡象,但它仍然不工作。 我缺少什麼

+0

你是什麼樣的測試,什麼地方出了錯? – 2014-08-28 20:01:28

+0

我相信你的意思是反斜槓(\\),而不是正斜槓(/)。 – 2014-08-28 20:03:21

回答

3

您還需要躲避-字符:

擺脫-並不總是必要的。然而,在這裏,它被用在方括號內,這使得JavaScript引擎假定你正在試圖指定範圍從_-]導致「字符類中的範圍失序」錯誤。

注意/[_-a]/是有效的正則表達式匹配和字符_`a(ASCII碼95 ... 97);這可能不是預期的結果。

1

如果您嘗試您正則表達式在網上正則表達式測試儀像regex101你會得到錯誤:

Regex link

enter image description here

你必須使用\-逃脫-

^[A-Za-z0-9._\-\] ]+$ 

Btw,yo ü可以縮短你的正則表達式來:

^[\w.\-% ]+$ 

編輯:添加正則表達式的評論:

^[\w.-\]\[ #$>()@{}'"]+$ 

Working demo

+0

我修改了正則表達式:var regx = /^[A-Za-z0-9._-%] + $ /;我包括%,現在當我在Chrome中運行它時,我在字符類中出現語法錯誤範圍失序。我想包含像#$> []()@ {}'「和字母數字的特殊字符。 – Mary 2014-08-28 20:40:18

+0

@Mary我已經更新了我的回答以供您評論。正則表達式有需要轉義的特殊字符,所以短劃線是一個你需要將它轉義爲\ - 。順便說一句,如果你的問題得到解答,你可以考慮將你的問題標記爲已解決 – 2014-08-28 20:50:35

相關問題