使用本地化模式的Spring @Pattern bean验证?

时间:2013-01-17 14:37:09

标签: java spring localization

我们的Spring MVC应用程序在视图bean上使用@Pattern注释来限制用户可以输入的字符。

@Pattern(regexp = "[a-zA-Z0-9_.]*")
private String username;

我们正在将应用程序本地化为各种欧洲语言(法语,德语等),并希望包含其他字符,例如带有重音符号和变音符号的字符。

我觉得我们应该集中精力排除我们不想要的角色,还是有更好的方法?

3 个答案:

答案 0 :(得分:0)

我认为\p{L}正是您所寻找的。这是unicode字符的字符类。另请参阅Pattern类的文档。

答案 1 :(得分:0)

您也可以将此模式[\\ p {IsL}]用于Unicode字符。它包括口音(áéíóú)和其他欧洲字符(ñ...)

答案 2 :(得分:0)

考虑使用这种模式:

@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