我需要驗證該用戶類型只有英文文本。 所以它可以是帶有標點符號的拉丁字母。 現在我寫的正則表達式如下:Hibernate @Pattern ASCII符號的正則表達式驗證器
@NotEmpty
@Pattern(regexp = "^[ \\w \\d \\s \\. \\& \\+ \\- \\, \\! \\@ \\# \\$ \\% \\^ \\* \\(\\) \\; \\\\ \\/ \\| \\< \\> \\\" \\' \\? \\= \\: \\[ \\] ]*$")
private String str;
,它工作正常。
但我想想更優雅的方式:我想驗證我的字符串只包含ASCII符號。我可以使用一些特殊的註釋或參數嗎?或者我需要爲此編寫自定義驗證器? (你能幫我在這種情況下的例子)。
我想是這樣的:
static CharsetEncoder asciiEncoder = Charset.forName("US-ASCII"); // or "ISO-8859-1" for ISO Latin 1
boolean isValid(String input) {
return asciiEncoder.canEncode(input);
}
好吧,但你知道如何通過休眠來進行驗證嗎? –
嘗試使用我的選項2中的正則表達式模式,而不使用@Pattern中不那麼長的非優雅正則表達式,您不喜歡 – NickNo