我们的Spring MVC应用程序在视图bean上使用@Pattern注释来限制用户可以输入的字符。
@Pattern(regexp = "[a-zA-Z0-9_.]*")
private String username;
我们正在将应用程序本地化为各种欧洲语言(法语,德语等),并希望包含其他字符,例如带有重音符号和变音符号的字符。
我觉得我们应该集中精力排除我们不想要的角色,还是有更好的方法?
答案 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