2011-08-26 64 views
0

我在註冊表單上工作,我正在爲輸入(用戶)數據提供驗證(spring)。 我有這樣數據驗證 - 正則表達式

名稱(全稱)只有

字符被允許領域

- >可接受的值是: A,AB,AB,ABC,美國廣播公司高清,ABC DEF GHI

- >否允許垃圾/特殊字符。

  • 我目前使用的正則表達式:

    Pattern.compile("(([a-zA-z])+([\\s]+[\\s])?[^*$&[email protected]%~\",:;{}|=()_0-9])*"); 
    

- >字符串單和兩個空間的工作,這是罰款。

- >只有數字不接受,這很好。

  • 問題

- >圖案不與 「單字符」 工作,如 「a」 或 「A」

- >不是輸入字母數字引發錯誤,像abc23

收入

哪個壽LD接受嚴格只數值

  • 正則表達式我目前使用:

    Pattern.compile ("(([0-9])?[^*&[email protected]%~\",:;{}|=()_a-zA-z])*") 
    
  • 問題

    接受字母數字

註冊號

它可以是一個字符,可以是數字,可aplhanumeric,但沒有空間允許

任何人都可以請幫我在寫作中正確的正則表達式(僅適用於正則表達式的作品)上面提到的字段?

+3

在[tchrist] (http://stackoverflow.com/questions/6162484/why-does-modern-perl-avoid-utf-8-by-default/6163129#6163129)的單詞:「相信某人的名字可以的代碼如果某些人物是愚蠢的,冒犯的和錯誤的。「 – NullUserException

+1

如果這是要求,你肯定無助。 Tchrist知道這一點。 –

+0

+1在之前的項目中,我們的一位用戶報告了題爲「無愛爾蘭需要申請」的錯誤。你大概可以猜到問題是什麼。不用說我們很尷尬。 – Dan

回答

3

您的正則表達式很長,導致我認爲可能存在其他約束。 但是,考慮到你給出的要點......

對於名稱,你可以使用:

Pattern.compile("[a-zA-Z ]+") 

收入,你可以使用:

Pattern.compile("[0-9]+") 

註冊,您可以使用:

Pattern.compile("[a-zA-Z0-9]+") 
+0

什麼被認爲是不好的輸入?我不是100%確定你的要求是什麼。我在帖子中說過。 – brandon

+0

我剛測試過它們。他們不。什麼語言/你如何使用它們? – brandon

+0

我誤解了這個。 – NullUserException