Участник
Пользователь
- Сообщения
- 1,055
- Реакции
- 212
- Предупреждения
- 9
- Помог
- 6 раз(а)
Здравствуйте, столкнулся с проблемой
Как в input запретить ввод определенных символов ($*&@#!)( и тд) регулярное выражение некорректно отрабатывает, пробовал в pattern тоже самое
JavaScript:
let form = document.querySelector('.formWithValidation');
let password = form.querySelector('.password');
let passwordConfirmation = form.querySelector('.passwordConfirmation');
let fields = form.querySelector('.field');
function removeValidation() {
let errors = form.querySelectorAll('.error'),
succesful = form.querySelectorAll('.succesful')
for (let i = 0; i < errors.length; i++) {
errors[i].remove();
}
for (let i = 0; i < succesful.length; i++) {
succesful[i].remove();
}
}
function checkFieldsPresence(){
if (!fields.value) {
fields.insertAdjacentHTML('afterEnd', '<span class="error"><i class="fa-solid fa-xmark"></i> Заполните поле</span>');
fields.style.border = '1px solid red';
}else{
if(fields.value == "^[a-zA-Z0-9_]*$"){ // Проблема тут
fields.insertAdjacentHTML('afterEnd', '<span class="error"><i class="fa-solid fa-xmark"></i> Заполните</span>');
return;
}
fields.insertAdjacentHTML('afterEnd', '<i class="fa-solid fa-check succesful">');
fields.style.border = '1px solid green';
}
}
function Check(){
setTimeout(checkPasswordMatch, 500);
}
function checkPasswordMatch () {
if(password.value !== passwordConfirmation.value || password.value == '' || passwordConfirmation.value == '') {
password.insertAdjacentHTML('afterEnd', '<span class="error">Пароли не совпадают</span>');
password.style.border = '1px solid red';
passwordConfirmation.style.border = '1px solid red';
}else if(password.value === passwordConfirmation.value){
password.insertAdjacentHTML('afterEnd', '<i class="fa-solid fa-check succesful"></i>');
password.style.border = '1px solid green';
passwordConfirmation.style.border = '1px solid green';
removeValidation();
}
}
function CheckDate(){
removeValidation();
checkFieldsPresence();
}
В этой теме было размещено решение! Перейти к решению.