@lexstile

Как правильно составить регулярное выражение для фамилии на кириллице на JS?

Требования:
  • Только кириллица
  • Возможен символ "-" - (дефис)
  • Возможен символ " " (пробел)
  • Начало и конец строки - только кириллица
  • В середине строки можно использовать пробел или дефис, но не более 1 подряд ("- " или " -" тоже нельзя)

Примеры валидных строк:
  • "Иванова"
  • "Иванова Петрова"
  • "Иванова-Петрова"

Примеры НЕвалидных строк:
  • "-Петрова"
  • "Петрова-"
  • "Иванова -Петрова"
  • "Иванова- Петрова"
  • "Иванова - Петрова"
  • "Иванова--Петрова"
  • "Иванова Петрова"


У меня получилась вот такая ерунда:
^[а-яё]*[а-яё]+[\-\s]?[а-яё]+$
  • Вопрос задан
  • 2945 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
/^[a-яё]+(?:[ -][a-яё]+)*$/i
Ответ написан
/^[а-яё]+(?:[ -]{1}[а-яё]*)?$/i
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы