我在一個bean中有一個變量名。我想添加@Pattern
驗證,只接受字母數字。@用於字母數字字符串的模式 - Bean驗證
目前,我有這個。
@NotNull
@Pattern(regexp = "{A-Za-z0-9}*")
String name;
但誤差Invalid regular expression.
我試過[A-Za-z0-9]
。但是這也不起作用。雖然沒有錯誤。它顯示任何有效的輸入失敗。
我在一個bean中有一個變量名。我想添加@Pattern
驗證,只接受字母數字。@用於字母數字字符串的模式 - Bean驗證
目前,我有這個。
@NotNull
@Pattern(regexp = "{A-Za-z0-9}*")
String name;
但誤差Invalid regular expression.
我試過[A-Za-z0-9]
。但是這也不起作用。雖然沒有錯誤。它顯示任何有效的輸入失敗。
你嘗試這種模式:^[A-Za-z0-9]*$
或^[A-Za-z0-9]+$
避免空的結果。
如果要檢查字符串是否只包含特定字符,則必須添加錨點(字符串開頭爲^
,字符串結尾爲$
),以確保您的模式匹配所有字符串。
花括號只寫一個量,比如:我想要兩個a
:a{2}
你不能把字母裏面。你能滿足大括號內的字母唯一情況是,當你使用Unicode字符類:\p{L}
,\p{Greek}
,\p{Arabian}
,...
另外,你可以使用一個字符類,可以在花括號中使用,即Alnum。例如,對於具有1個32個字符之間的長度的字母數字字符包容:
@Pattern(regexp = "^[\\p{Alnum}]{1,32}$")
看到https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html