Например, я хочу проверить имя. Имя должно состоять из слов, разделенных знаком " " или "-". Пример: «Жан-Люк Меланшон», «Хави Эрнандес».
@Pattern(regex =) Весенний валидатор
Ответы (3)
Если я правильно понял ваши требования, вам нужен валидатор имен, правило которого состоит в том, чтобы убедиться, что каждое имя содержит хотя бы один пробел или один дефис (-). Вы можете использовать это регулярное выражение:
^.*(\s|-)+.*$
(\s|-)+
означает, что должен быть хотя бы один пробел (\s
) или дефис (-
).*
допускает любое количество символов до и после пробела
Будет удачно сочетаться с
Jean-Luc Melenchon
Xavi Hernandez
Lionel Messi
Zlatan Ibrahimovic
Не будет соответствовать приведенному ниже (потому что в них нет пробела или дефиса)
Deco
Rivaldo
Kaka
O'Shea
Если это для лабораторного упражнения, нокаутируйте себя. Если оно будет использоваться в реальном приложении, не думайте, что вы знаете, что такое допустимое имя.
Взгляните на Использование RegEx для проверки Имя и фамилия в Java и PHP Regex для человеческих имен
Как говорит Паскаль Мартин в последнем,
рано или поздно ваш код встретит имя, которое он считает "неправильным"... И как вы думаете, как кто-то отреагирует, когда приложение скажет ему "ваше имя недействительно"?
Я попробовал это, и, кажется, он работает нормально
[A-Za-zàâéêèìôùûçÀÂÉÊÈÌÔÙÛÇ']+(\\s|\\-[A-Z]+)*
Breandán Dalton
Или этот? Влади́мир Ильи́ч Улья́нов
- person Breandán Dalton; 08.05.2017