Убрать пробелы при вводе пароля в поле формы
Приветствую!
Делаю валидацию одного поля, ввод сложного пароля, например 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(''); Но это не решает проблему. Подскажите, что не так я делаю? Заранее спасибо, откликнувшимся! |
Зачем убирать пробелы?
Если пробелы есть, просто говорить, что пароль введен неверно. Пусть тот, кто вводил и убирает. |
Нужно помогать пользователям.
Ну и мой код, после прохождения валидации пароля, при вводе пробелов - не ругается, а говорит Хороший пароль, о чём я и написал выше. |
Муть какая то
Цитата:
Цитата:
Если валидация не прошла, то отправка отменяется, сообщение пользователю, где что не так, и пусть дальше вводит. |
Вот так сделал, убирает все пробелы:
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('Хороший пароль'); } } Если можно улучшить этот код, то было бы не плохо увидеть. |
Часовой пояс GMT +3, время: 08:45. |