Неожиданно перестала работать регулярное выражение, в чём проблема?
Регулярное выражения работало, но не пойму после чего стало ругаться:
Вот часть кода:
function validateUser(user){
// regExp выражения
let templateFullName = /^([a-zA-Z]+)$|^([а-яА-ЯёЁ]+)$/;
let templateLoginAndPassword = /^[a-zA-Z0-9_]+$/;
let templateEmail = /^[\w_.]{3,}@([a-z]{2,})\.[a-z]{2,4}$/;
let divWithErrors = document.getElementById("divWithErrors");
let statusOperation = false;
if(templateFullName.test(user.name) != true){
divWithErrors.innerText = "Name error";
}else if (templateFullName.test(user.middleName) != true){
divWithErrors.innerText = "Error in middle name";
}else if (templateFullName.test(user.lastName) != true){
divWithErrors.innerText = "Last name error";
}else if (templateLoginAndPassword.test(user.login) != true){
divWithErrors.innerText = "Error in login";
}else if (templateLoginAndPassword.test(user.password) != true){
divWithErrors.innerText = "Error in password";
}else if (user.password != user.repeatPassword){
divWithErrors.innerText = "Passwords aren't the same";
}else if (templateEmail.test(user.email) != true){
divWithErrors.innerText = "Error in email";
}else{
statusOperation = true;
divWithErrors.innerText = "";
}
return statusOperation;
}
Ругается на строчку: let templateFullName = /^([a-zA-Z]+)$|^([а-яА-ЯёЁ]+)$/;
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Сохраняйте ваши файлы в кодировке UTF8 и проследите, чтобы при передаче файла не происходило повторное кодирование (у вас произошло двойное кодирование в UTF8).
Кроме того, можно использовать запись в виде кодов Юникода:
let templateFullName = /^(?:[a-zA-Z]+|[\u0430-\u044F\u0410-\u042F\u0451\u0401]+)$/
где \u0430-\u044F - а-я, \u0410-\u042F — А-Я, \u0451 — ё и \u0401 — Ё.