我們的Spring MVC應用程序在視圖bean上使用@Pattern註解來限制用戶可以輸入的字符。Spring @Pattern bean驗證本地化模式?
@Pattern(regexp = "[a-zA-Z0-9_.]*")
private String username;
我們本地化應用到各種歐洲語言(法語,德語等),並希望包括其他字符,如那些帶有重音和變音符號。
我覺得我們應該專注於排除我們不想要的角色或者有更好的方法嗎?
我們的Spring MVC應用程序在視圖bean上使用@Pattern註解來限制用戶可以輸入的字符。Spring @Pattern bean驗證本地化模式?
@Pattern(regexp = "[a-zA-Z0-9_.]*")
private String username;
我們本地化應用到各種歐洲語言(法語,德語等),並希望包括其他字符,如那些帶有重音和變音符號。
我覺得我們應該專注於排除我們不想要的角色或者有更好的方法嗎?
我認爲\p{L}
是你正在尋找的。這是unicode字符的字符類。另請參閱Pattern類的文檔。
對於Unicode字符,您也可以使用此模式[\\ p {IsL}]。它包括口音(A E I O U)和其他歐洲字符(n中)
考慮使用這種模式:
@Pattern(regexp = "^[a-zA-Z0-9_.\u00C0-\u1FFF\u2C00-\uD7FF]*$")
private String username;
意識到,它包括非歐洲語言。 雖然,\p{L}
也應該很好地工作:
@Pattern(regexp = "^[\\p{L}0-9_.]*$")
private String username;
見https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html