Как установить проверку на размер строки = 0 или min=5, max=10?


Мне нужна проверка набора на входе строкового поля. Это поле должно быть пустым или между символами 5 и 10. Но если я установлю проверку следующим образом:

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

Он не пройдет @Valid, когда значение пусто. Как я могу этого достичь?

1 2

1 ответ:

Вы можете установить шаблон для принятия пустых значений или 5 для 10 символов:

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

Здесь мы использовали чередование, |, чтобы сказать валидатору считать переданное значение допустимым, если совпадают либо пустая строка, либо паттерны .{5,10}.

Если вы рассматриваете пустые значения как пустые строки, используйте следующий шаблон:

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