如何对字符串大小设置验证 = 0 或 min=5,max=10?

How set validation on size of string = 0 or min=5, max=10?

我需要对字符串字段的输入设置验证。此字段应为空或介于 510 个字符之间。但是如果我这样设置验证:

@Size(min=5, max=10)
private String couponCode;

当值为空时不会通过@Valid。我怎样才能做到这一点?

您可以将模式设置为接受空白值或 510 个字符:

@Pattern(regexp = "|.{5,10}")
private String couponCode;

这里我们使用 Alternation|,告诉验证器认为传递的值有效,如果是空字符串或 .{5,10} 模式匹配。

如果您将空白值视为空字符串,请使用以下模式:

@Pattern(regexp = "\s*|.{5,10}")
private String couponCode;