3

javax.validation.constraints.Pattern @Pattern 验证有问题。

@Pattern(regexp = "\\p{L}*", message = "Msg")
private String name;

当我尝试输入任何文本时,它不起作用。

当我使用:

@Pattern(regexp = "[a-zA-Z]*", message = "Msg")

它适用于非拉丁字符。

4

1 回答 1

1

您需要使用flag\p{L}使模式 Unicode 感知。Pattern.UNICODE_CHARACTER_CLASS

启用预定义字符类和 POSIX 字符类的 Unicode 版本。

由于您使用的是字符串模式,因此您可以使用内联(嵌入式)标志变体(?U)

regexp = "(?U)\\p{L}*"
于 2016-11-08T11:45:49.697 回答