JSR 303 - 定义的大小或 null

JSR 303 - defined size or null

我有以下字段 JSR-303 验证:

@Size(min = 6, max = 6, message = "Field needs to be 6 characters")
private String field;

该字段的要求是 6 characters or null

(然后我使用 valdr-bean-validation (https://github.com/netceteragroup/valdr-bean-validation) 将其提取为 valdr 格式并在 AngularJS.)

问题: 如何使用 JSR-303 满足要求,以便该字段可以是 null or 6 characters?目前我的 @Size 规则需要至少 6 个字符。

我不想使用自定义验证器,因为与 valdr 兼容。正则表达式是好的选择吗?谢谢

是的,您应该在此字段上使用@Pattern 注释(或者使用大小、模式和任何其他规则组合创建您自己的注释)

我使用带有简单 RegEx 的 @Pattern 注释修复了它:

@Pattern(regexp = "^.{6,6}$|^$", message = "Field must be 6 digits or empty")
private String field;