Текстовое поле 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
}
}