对可能为空或必须有 n 位的字符串进行 JAX-RS 验证
JAX-RS validation for string which may be empty or must have n digits
我正在使用 javax.validation.constratins
中的 Pattern
验证来验证字段。字符串:
- 可能是
null
或为空或
- 它必须正好是七位数字。
我设法验证了七位数字,但我不知道如何进一步验证此字段是否为空。
@Getter
@Setter
public class MyRestRequest {
@Pattern(regexp = "\d{7}")
private String someString;
}
因为 Pattern null
被认为是有效的,问题归结为构造匹配空字符串或七位数字的正则表达式。通常对于空字符串,使用 ^$
(行首和行尾)。
在这种情况下,^|\d{7}
和 $|\d{7}
甚至 |\d{7}
也可以,但 ^$|\d{7}
更典型:
@Pattern(regexp = "^$|\d{7}")
public String someString;
我正在使用 javax.validation.constratins
中的 Pattern
验证来验证字段。字符串:
- 可能是
null
或为空或 - 它必须正好是七位数字。
我设法验证了七位数字,但我不知道如何进一步验证此字段是否为空。
@Getter
@Setter
public class MyRestRequest {
@Pattern(regexp = "\d{7}")
private String someString;
}
因为 Pattern null
被认为是有效的,问题归结为构造匹配空字符串或七位数字的正则表达式。通常对于空字符串,使用 ^$
(行首和行尾)。
在这种情况下,^|\d{7}
和 $|\d{7}
甚至 |\d{7}
也可以,但 ^$|\d{7}
更典型:
@Pattern(regexp = "^$|\d{7}")
public String someString;