Регулярное выражение: не более 2 пробелов между словами
Есть простой RegExp [а-яёА-ЯЁ]{0,1}[\sа-яёА-ЯЁ.\-]{1,}, который первым символом принимает только буквы, а дальше любые символы и буквы.
Как запретить ввод 2 подряд идущих пробелов между словами?
Ответы (2 шт):
Автор решения: SyntaxErrorLineNULL
→ Ссылка
input { box-sizing: border-box; width: 60%; border: 1px double; outline: none; }
:valid { border-color: orange; }
:invalid { border-color: red; }
<input pattern="^((?!\s{2}).)*$" autofocus>
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте
/^[а-яёА-ЯЁ]+(?:\s[а-яёА-ЯЁ.-]+)*$/
Подробности
^- начало строки[а-яёА-ЯЁ]+- 1 и более русских букв(?:\s[а-яёА-ЯЁ.-]+)*- 0 и более повторов\s- 1 пробельный символ[а-яёА-ЯЁ.-]+- 1 и более русских букв, точек или дефисов
$- конец строки
Если пробелы, точки и дефисы не могут следовать друг за другом, используйте
/^[а-яёА-ЯЁ]+(?:[\s.-][а-яёА-ЯЁ]+)*$/