ограничить символы в поле формы - PullRequest
0 голосов
/ 17 января 2012

У меня есть поле HTML в форме, и, используя JS и Regex, я должен ограничить символы, которые пользователь может вставить в поле. Пользователь формы может вставить только следующие символы ( ) * + ^ / X x, а также цифры и пробелы (когда он вводит цифры или вставляет другой символ, ничего не пишется). Это возможно? Мне нужен Regex, я в конце концов знаю, как это сделать с JS.

Ответы [ 3 ]

2 голосов
/ 17 января 2012

Попробуйте это регулярное выражение

[^\(\)\*+\^/Xx0-9 ]

Здесь мы пытаемся найти шаблон, который не содержит ни одного из разрешенных символов.Если вы обнаружите это, это означает, что введенный символ был неправильным.

1 голос
/ 17 января 2012

Нет правильного или неправильного ответа на это.
Обычно дешевле проверять использование смещения логики для конкретного условия.
Если звучит лучше, говоря, что разрешено , затем используйте допустимый (положительный) класс символов.

Разрешенный класс: [()*+^/Xx0-9 ], проверки: <space> (-+ /-9 X \^ x

Недопустимый класс: [^()*+^/Xx0-9 ], проверки: \0-\37 !-' , \- . :-W Y-\] _-w y-\377

Статистически, если% 99 отвведенные данные были действительны, класс «Разрешено» будет выполнять меньше работы, так как
не нужно проверять каждый символ или диапазон.
Где класс «Не разрешено» должен проверять каждый диапазон.

В этом конкретном случае у отрицательного класса есть гораздо больше диапазонов и символов для проверки, его граница
более эффективна, если большинство данных были неверными,

0 голосов
/ 17 января 2012

В отношении:

[^\(\)\*+\^/Xx0-9 ]

Ни один из этих символов не должен быть экранирован внутри набора (но это нормально).

Если вы хотите ограничить как пользовательские типы (это использует методы jquery):

$('#in1').keyup(function (evt) {
    var content = $('#in1').val();
    $('#in1').val(content.replace(/[^()*+^/Xx0-9]/g, ""));
    return true;
});  

Где 'in1' - идентификатор входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...