1

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

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

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

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

4

3 回答 3

0

我认为\p{L}这就是您要寻找的东西。那是 unicode 字符的字符类。另请参阅 Pattern 类的文档。

于 2013-01-22T18:06:41.727 回答
0

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

于 2013-10-08T13:41:30.427 回答
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

于 2018-02-09T11:58:28.663 回答