Текстовое поле Javascript - не отправляйте с символами, не входящими в белый список

У меня есть текстовое поле, которое отправляет текст в div, когда я нажимаю клавишу возврата или нажимаю кнопку. Мне нужно исключить строки и выдать сообщение об ошибке, в котором есть символы, которых нет в моем белом списке. Я надеялся, что смогу проверить строку, когда пользователь отправит текст вместо проверки каждого символа при вводе.

Я попытался пройти тестовый маршрут Регулярного выражения, но он возвращает true, если какой-либо символ соответствует моему белому списку, а не если каждый символ соответствует. (Код содержит только буквы в моем белом списке, но я могу изменить эту часть позже самостоятельно.)

        function valTxt(x) {
            var patt=/[a-z]/i;
            if (patt.test(x)) {
                document.getElementById("valMsg").innerHTML = "Contains letters.";
            }
            else {
                document.getElementById("valMsg").innerHTML = "Does not contain letters.";
            }
        }

Нужно ли использовать цикл для проверки каждого символа, или есть предопределенная функция или метод, который делает то, что я хочу сделать?

1 ответ

Решение

Вам просто нужны начальные и конечные якоря на вашем регулярном выражении. Это говорит о том, что 0 или более символов между началом и концом должны быть из вашего белого списка

function valTxt(x) {
        var patt=/^([a-zA-Z])*$/;
        if (patt.test(x)) {
            // matched
        } else {
            // didn't match
        }
}
Другие вопросы по тегам