Как при валидации оставить только один пробел между двух слов
У меня есть форма. В одном поле нужно ввести (имя и фамилия).
Мне нужно регулярное выражение которое оставит только один пробел между Именем и Фамилией.
Я кое-что сделал, но это работает не корректно.
Нужны только буквы один пробел по центру и больше ничего.
document.querySelector('#name').addEventListener('keyup', function() {
this.value = this.value.replace(/^\s|[^A-Za-zА-Яа-яЁё][^A-Za-zА-Яа-яЁё]|\s$/, '');
});
^\s|[^A-Za-zА-Яа-яЁё][^A-Za-zА-Яа-яЁё]|\s$
Мой валидатор с ошибками он позволяет ввести в самом начале цифру и следом за ней букву.
Ответы (1 шт):
Автор решения: Bamberg
→ Ссылка
document.querySelector('#name').addEventListener('input', function() {
this.value = this.value
.replace(/\d/gm, '')
.replace(/ {2,}/, ' ')
.replace(/^ {1,}/, '')
.replace(/[^A-Za-zА-Яа-яЁё\s]/, '')
.replace(/^([A-Za-zА-Яа-яЁё]+) ([A-Za-zА-Яа-яЁё]+)( {1}|)/gm, '$1 $2');
});