3

У меня проблема с javax.validation.constraints.Pattern @Pattern validation.@Pattern с Unicode-скриптом \ p {L} * не работает

@Pattern(regexp = "\\p{L}*", message = "Msg") 
private String name; 

Когда я пытаюсь ввести любой текст, он не работает.

Когда я использовал:

@Pattern(regexp = "[a-zA-Z]*", message = "Msg") 

Это здорово с не латинскими буквами работает.

+2

Можете ли вы определить «не работает»? – assylias

+0

Какой текст вы набираете? Обратите внимание, что шаблон здесь привязан, вы можете вводить буквы только. Чтобы разрешить, например, пробелы также используют '[\\ p {L} \\ s] *'. –

+0

Я набираю текст из текста и валидатор возвращает ошибку проверки. –

ответ

1

Вам необходимо сделать код Unixode \p{L} с помощью Pattern.UNICODE_CHARACTER_CLASS flag.

Включает Unicode версию предопределенных классов символов и классов символов POSIX.

Поскольку вы используете шаблон строки, вы можете использовать вариант (встроенный) флаг рядный, (?U):

regexp = "(?U)\\p{L}*" 
Смежные вопросы