Показать сообщение отдельно
  #1 (permalink)  
Старый 21.11.2021, 12:03
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Убрать пробелы при вводе пароля в поле формы
Приветствую!

Делаю валидацию одного поля, ввод сложного пароля, например gD7$hs.

Не удается правильно удалять пробелы, после ввода правильного пароля.
Если пароль не проходит валидацию по правилам регулярного выражения, то пробелы успешно удаляются.
Если валидайия прошла успешно, то после этого позволяет сделать пробелы. А нужно, чтобы не позволяло сделать пробелы во всех случаях.

Вот код, который я сделал:
function validatePassword(element) {
	
    var str = element.value;
	if(!(/(?=.*[0-9])(?=.*[!@#$%^&*])(?=.*[a-z])(?=.*[A-Z])[0-9!@#$%^&*a-zA-Z]{6,}/g.test(str))){ // правильный пароль
		str = str.replace(/\s+/g, ''); //не дает сделать пробел
        element.value = str;
		layer.msg('Плохой пароль');
		} else {
		layer.msg('Хороший пароль');
    }
}

Вместо
str = str.replace(/\s+/g, '');

Можно вставить:
str = str.split(' ').join('');

Но это не решает проблему.

Подскажите, что не так я делаю?

Заранее спасибо, откликнувшимся!
Ответить с цитированием