4 или более одинаковых последовательных букв

1

Может ли кто-нибудь сказать мне, что я могу добавить к существующему выражению RegEx, чтобы 4 или более одинаковых букв подряд были недействительными? Это то, что у меня есть до сих пор:

(^[A-Za-z]{1})([A-Za-z\-\'\s]{0,})([A-Za-z]{1}$)

До сих пор он удовлетворяет всем, кроме одного из моих требований:

  • Любой алфавитный символ
  • Одиночные пробелы, но не как первый или последний символ
  • Дефисы, но не как первый или последний символ
  • Одиночные кавычки, но не как первый или последний символ
  • Не более трех последовательных символов одинаковые, независимо от случая
  • Длина не менее 2 символов, если присутствует

Некоторые примеры:

James        - valid  
Sarah Jayne  - valid  
Michellle    - valid  
O'Brian      - valid  
Holly-Rose   - valid  
Eeeeric      - invalid  
Jo--anne     - invalid
Теги:

1 ответ

1
Лучший ответ

На основе вашего описания, редактирования и комментария вы можете использовать это регулярное выражение в Javascript:

/^(?=.{2})(?!.*([a-z])\1{3})[a-z]+(?:[' -][a-z]+)*$/gmi

Демо-версия RegEx

Есть 2 взгляда:

  • (?=.{2}) - Положительный просмотр для обеспечения ввода не менее 2 символов
  • (?!.*([az])\1{3}) Отрицательный взгляд, чтобы мы не допустили 4 повторения алфавитов.
  • 1
    Немного отредактировал, что сделал свое дело. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню