仅在字段不为空时验证

Rav*_*ndu 6 java validation spring jsr bean-validation

我使用JSR303 Spring Validation并且我有以下内容;

@Digits(fraction = 0, integer = 15)
private String tpMobile;
Run Code Online (Sandbox Code Playgroud)

验证说Must be number between 10-15 digits,但问题是这个字段是可选的。因此,当用户将其留空时,也会显示相同的错误消息。

所以我想做的是仅在该字段不为空时才进行验证。如果该字段为空,则跳过验证该字段

Sat*_*ani 3

@Digit我建议您使用而不是使用@Pattern(message="YOUR_MESSAGE", regexp="REGULAR_EXPRESSION")

主要原因是我们显示了我们想要限制用户的一组值的消息,在您的条件消息中显示了您不想限制的值。

所以你想限制用户输入除空格和数字之外的任何内容。为此创建一个正则表达式并使用 @Pattern 。

对于你的情况:

@Pattern(message="YOUR_MESSAGE", regexp="^(\\s*|\\d{10,15})$")
Run Code Online (Sandbox Code Playgroud)