Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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('');

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

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

Заранее спасибо, откликнувшимся!
Ответить с цитированием
  #2 (permalink)  
Старый 21.11.2021, 12:46
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,701

Зачем убирать пробелы?
Если пробелы есть, просто говорить, что пароль введен неверно. Пусть тот, кто вводил и убирает.
Ответить с цитированием
  #3 (permalink)  
Старый 21.11.2021, 13:13
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Нужно помогать пользователям.
Ну и мой код, после прохождения валидации пароля, при вводе пробелов - не ругается, а говорит Хороший пароль, о чём я и написал выше.
Ответить с цитированием
  #4 (permalink)  
Старый 21.11.2021, 13:30
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,701

Муть какая то
Сообщение от Vaska
Если пароль не проходит валидацию по правилам регулярного выражения, то пробелы успешно удаляются.
А почему именно пробелы? А не что то другое? Ввод пробела при вводе пароля - самая распространенная ошибка?
Сообщение от Vaska
Если валидайия прошла успешно, то после этого позволяет сделать пробелы.
Это как? Валидация делается перед отправкой формы. До этого пользователь может вводить что угодно.
Если валидация не прошла, то отправка отменяется, сообщение пользователю, где что не так, и пусть дальше вводит.
Ответить с цитированием
  #5 (permalink)  
Старый 21.11.2021, 14:18
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

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

Если можно улучшить этот код, то было бы не плохо увидеть.

Последний раз редактировалось Vaska, 21.11.2021 в 14:22.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отслеживание события при добавлении значения в поле скриптом dmitry.sh18 Events/DOM/Window 6 14.10.2019 17:36
Как при отправке формы из модалки дописывать данные из первой формы? Alexander9292 AJAX и COMET 5 01.09.2019 20:01
Генерация формы на стороне клиента при загрузки страницы Corey Общие вопросы Javascript 2 17.09.2013 17:13
Не понятна работа при отправке формы на валидацию bartonom AJAX и COMET 5 14.05.2013 21:18
Подбор вариантов при вводе. SergeiAzarov Общие вопросы Javascript 1 06.09.2008 15:09