JAX-RS验证的字符串可能为空或必须具有n位数字

问题描述 投票:0回答:1

我正在使用Pattern中的javax.validation.constratins验证来验证字段。字符串:

  • 可能是null或为空OR
  • 它必须正好有七个数字。

我设法验证了七个数字,但我不知道如何进一步验证此字段可能为空。

@Getter
@Setter
public class MyRestRequest {

  @Pattern(regexp = "\\d{7}")
  private String someString;

}
validation jax-rs bean-validation
1个回答
0
投票

因为Pattern null被认为是有效的,所以问题归结为构造与空字符串或七位数字匹配的正则表达式。通常,对于空字符串,使用^$(行的开头和结尾)。

在这种情况下,^|\\d{7}$|\\d{7}甚至甚至是|\\d{7}都可以,但是^$|\\d{7}更典型:

@Pattern(regexp = "^$|\\d{7}")
public String someString;
© www.soinside.com 2019 - 2024. All rights reserved.