2012-02-01 50 views
1

這個正則表達式有什麼問題?
這個正則表達式驗證中缺少什麼?

^[a-zA-Z,\d,\&,\#,\-,\(,\']{3,15}$  

有效輸入是alphanumericspace#&'-與max和分別在3和15的最小長度。

當我輸入以下有效輸入,它失敗:

MT90#&' ABCD 

回答

1

你錯過了空間\s,沒必要在字符集使用,

這將是確定:

/^[a-zA-Z\d\s&#-\(']{3,15}$/ 

更新: \s將匹配所有空白(包括標籤和換行符以及空格),如果你只想空間,更改爲:

/^[a-zA-Z\d &#-\(']{3,15}$/ 
+0

'\ s'會匹配* all *空格(包括製表符和換行符以及空格),這在技術上並不是問題的要求。 – 2012-02-01 04:18:57

+0

@MattBrock沒錯,更新了,謝謝。 – xdazz 2012-02-01 04:27:05

2

你不需要逗號分隔符,你不需要逃避所有這些字符:

^[a-zA-Z\d\s&#-\(']{3,15}$ 
+0

嗨達伍德,不\ d是數字? – user1052591 2012-02-01 04:07:38

+0

你是對的,但你不需要逗號分隔符,你不需要逃避&,#和'。 – Dawood 2012-02-01 04:09:29

-1
^[a-zA-Z\d\&\#\-\(\'\ ]{3,15}$ 

刪除逗號,你是好去

0

你缺少空間。試試這個:[a-zA-Z\d\&\#\-\(\' ]{3,15}$

0

你只需要逃避以下字符:

[ \^$ . | ? * + () 

你也不需要你的字符集之間','
如果你在你的正則表達式中使用\s,它將覆蓋space,tabline breaks