Запрет 3 пробелов подряд

219
04 апреля 2018, 10:19

Плохо знаю регулярные выражения. У меня есть форма в Angular 5, для полей есть различные способы валидации, один из них Validators.pattern который добавляет шаблон в виде регулярного выражения, в данном случае мне нужен шаблон для ввода любого количества слов, но количество пробелов не больше 3 Заранее спасибо!

Answer 1
Не более трёх пробелов на весь текст:
^(\S*\s){0,3}\S*$

Проверка:

input { box-sizing: border-box; width: 100%; border: 1px solid; outline: none; } 
:valid { border-color: green; } 
:invalid { border-color: red; }
<input pattern="^(\S*\s){0,3}\S*$" autofocus>

Не более трёх пробелов подряд:
^((?!\s{4}).)*$

Проверка:

input { box-sizing: border-box; width: 100%; border: 1px solid; outline: none; } 
:valid { border-color: green; } 
:invalid { border-color: red; }
<input pattern="^((?!\s{4}).)*$" autofocus>

Answer 2

Если используете этот код он независимо от количество выбирает пробелов.

var str = "A   B  ";
str.replace(/\s+/,' '); // "A B"
READ ALSO
Проверка принадлежности символа строки к массиву

Проверка принадлежности символа строки к массиву

Если "input1" содержит только один символ из "neterminal", тогда в список рядом с правилом указывается тип правила "type1" (например, Z --> abc type1, A --> b type1),...

228
Общение несвязанных компонентов Vue

Общение несвязанных компонентов Vue

Доброго дняЕсть таблица где каждая ячейка представленна отдельным компонентом

200
Фон из многоугольников

Фон из многоугольников

Необходимо сделать фон из многоугольников

264
Как отправить данные по почте из формы?

Как отправить данные по почте из формы?

Как отправить данные на почту в вордрессе? По клику на странице выскакивает вот такое окно, после нажатия кнопки "Купить", не отправляет на почту...

188