Проверка регулярных выражений - показывать оскорбительные символы. javax.validation - PullRequest
3 голосов
/ 07 апреля 2011

В JSR-303 есть проверка регулярных выражений (javax.validation). Например:

@Pattern(regexp="[\w_\\.]+")
private String username;

Сообщение по умолчанию, которое отображается, когда значение недопустимо (не соответствует регулярному выражению), выглядит как «Must match {regex}». Но пользователи не понимают регулярные выражения, поэтому показывать им это неактуально. Можно просто показать «Имя пользователя содержит недопустимые символы», и, вероятно, в большинстве случаев все будет в порядке. Но будет хорошо показать, какой персонаж не прав.

Этого нельзя достичь с помощью регулярного выражения - оно либо совпадает, либо нет. Вы должны либо определить другие шаблоны, которые пропускают некоторые компоненты, либо попробовать удалить символы из строки, пока она не совпадет, а затем показать эти символы пользователю.

Это было в общем. Другой вопрос, как этого добиться с помощью javax.validation.

Итак, подведем итоги вопроса:

Как отобразить оскорбительные символы с помощью javax.validation, чтобы сообщение выглядело как «Символы?, * И $ недопустимы»

1 Ответ

2 голосов
/ 07 апреля 2011

Я бы пошел с отрицательной версией вашего шаблона проверки. Таким образом, ваш шаблон будет просто:

[^\w_\\.]

В случае ошибки проверки сопоставьте ее с входной строкой и выведите результаты пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...