2013-04-24 220 views
-2

我有輸入作爲數字,alphamumeric字符等我建立正則表達式來驗證這一點,但未能驗證空字符串(空字符串不應該是允許) 這裏是我的正則表達式,正則表達式允許數字,字符或字母數字但不是空字符串或特殊字符

(^([A-Za-z]|[0-9])+$) 

這能與上述要求提高?

+0

將'[0-9]'放在與[[A-Za-z]]相同的塊中:'[A-Za-z0-9]'。同時使用'Matcher.matches'而不是'find'則不需要'^'和'$',所以你的正則表達式可以簡單地爲'[A-Za-z0-9] +'。但是,保持開始和結束標記使得正則表達式更加明確。 – 2013-04-24 10:40:33

回答

3

你只需要這個表達式:

^[A-Za-z0-9]+$ 

這將只允許字母(大寫或小寫)和數字。空字符串將不被允許,因爲正則表達式將匹配長度爲1或更多的輸入。

+0

以及它不是爲我工作的,允許空字段, 我這裏測試http://www.regexplanet.com/advanced/java/index.html不同的輸入字段 – Sohan 2013-04-24 10:47:11

+0

@Sohan:你沒有測試它是正確的,我只是經過測試,它的工作,再次測試。 – anubhava 2013-04-24 10:51:48

+0

@Sohan:看到這個演示:http://www.rubular.com/r/YEWdUsRIIj只有前3行匹配,但最低2(包括空字符串)不匹配。 – anubhava 2013-04-24 10:53:17

0

我有輸入,數字,字符alphamumeric等我打造正規 表達式驗證這一點,但無法驗證空字符串 (空字符串不應該被允許)這裏是我的正則表達式,

您發佈的正則表達式不允許使用空字符串。但是,你應該結合[A-ZA-Z]和[0-9]使用\w這樣的:

^(\w)+$

如果你希望它也接受空字符串,你可以使用:

^(\w)*$

+0

它不工作,閱讀我的下面的評論和我在哪裏高壓測試 – Sohan 2013-04-24 10:51:07

相關問題