Может ли кто-нибудь сказать мне, что я могу добавить к существующему выражению RegEx, чтобы 4 или более одинаковых букв подряд были недействительными? Это то, что у меня есть до сих пор:
(^[A-Za-z]{1})([A-Za-z\-\'\s]{0,})([A-Za-z]{1}$)
До сих пор он удовлетворяет всем, кроме одного из моих требований:
Некоторые примеры:
James - valid
Sarah Jayne - valid
Michellle - valid
O'Brian - valid
Holly-Rose - valid
Eeeeric - invalid
Jo--anne - invalid
На основе вашего описания, редактирования и комментария вы можете использовать это регулярное выражение в Javascript:
/^(?=.{2})(?!.*([a-z])\1{3})[a-z]+(?:[' -][a-z]+)*$/gmi
Есть 2 взгляда:
(?=.{2})
- Положительный просмотр для обеспечения ввода не менее 2 символов(?!.*([az])\1{3})
Отрицательный взгляд, чтобы мы не допустили 4 повторения алфавитов.