Неожиданно перестала работать регулярное выражение, в чём проблема?

Регулярное выражения работало, но не пойму после чего стало ругаться: введите сюда описание изображения Вот часть кода:

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Ё.

→ Ссылка