首页 > 解决方案 > 对可能为空或必须有 n 位的字符串的 JAX-RS 验证

问题描述

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

我设法验证了七位数,但我不知道如何另外验证该字段可能为空。

@Getter
@Setter
public class MyRestRequest {

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

}

标签: validationjax-rsbean-validation

解决方案


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

在这种情况下,也^|\\d{7}$|\\d{7}或什至|\\d{7}会起作用,但^$|\\d{7}更典型的是:

@Pattern(regexp = "^$|\\d{7}")
public String someString;

推荐阅读