Как разрешить ввод только для определенных символов?
Разрешить ввод только символов [8, 9, 13, 16, 17, 32, 37, 39, 46, 65-122, 189] При вводе недопустимого символа вывести alert('Недопустимый символ') и удалить этот символ.
Нашел на просторах интернета такой вод код,но при запуске он не работает из-за чего не работает и дополнительный код для данной формы отправки.Разобраться в нем не смог.Может кто нибудь здесь подскажет.
Буду благодарен.
$(function(){
var mas = [0, 8, 9, 13, 16, 17, 32, 37, 39, 46, 56, 189];
$("#form.req_field").on("input", function(e) {
var str = $(this).val();
str = str.split("");
var test = str.filter(function(el) {
var kod = el.charCodeAt(0);
var ok = find_in_array(kod);
!ok && $("p").text("введен недопустимый символ! : " + el);
return ok;
});
$(this).val(test.join(""));
});
function find_in_array(needle) {
if (needle >= 65 && needle <= 122) return true;
for (var i = 0, l = mas.length; i < l; i++)
if (mas[i] == needle) return true;
return false;
}
});
Johnny Show: По примеру в моём ответе надо впереди вводить \x, т.к. общий формат \xHH, где HH - код символа в шестнадцатеричном представлении.
Читайте Regex!!!!
написал вот что,а дальше не знаю как и надо же сделать чтобы вывело алертом если не правильное ввел
var regex = /(?:8|9|13|16|17|32|37|39|46|65-122|189)/;
$('textarea,input[type="text"]').on('keyup', function(e) {
var matches = $(this).value.match(regex);
console.log(matches);
if (matches !== null) {
this.value = matches[0];
} else {
this.value = '';
}
});