Я использую плагин проверки jQuery . Отличный материал! Я хочу перенести существующее решение ASP.NET для использования jQuery вместо валидаторов ASP.NET. Я пропускаю замену валидатора регулярного выражения . Я хочу быть в состоянии сделать что-то вроде этого:
$("Textbox").rules("add", { regularExpression: "^[a-zA-Z'.\s]{1,40}$" })
Как добавить пользовательское правило для достижения этой цели?
jquery
regex
jquery-validate
PeterFromCologne
источник
источник
Ответы:
Благодаря ответу redsquare я добавил такой метод:
теперь все, что вам нужно сделать, чтобы проверить соответствие любому регулярному выражению, это:
Кроме того, похоже, что существует файл с именем Additional-method.js, который содержит метод «pattern», который может быть RegExp при создании с использованием метода без кавычек.
редактировать
pattern
Функция теперь предпочтительный способ сделать это, делая пример:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js
источник
Вы можете использовать addMethod ()
например
Хорошая статья здесь https://web.archive.org/web/20130609222116/http://www.randallmorey.com/blog/2008/mar/16/extending-jquery-form-validation-plugin/
источник
У меня были некоторые проблемы, когда я собирал все части для создания валидатора регулярных выражений jQuery, но я заставил его работать ... Вот полный рабочий пример. Он использует плагин «Проверка», который можно найти в плагине проверки jQuery.
источник
Нет причин определять регулярное выражение как строку.
и
Так лучше, нет?
источник
var re = new RegExp(regexp);
функцияРасширяя ответ PeterTheNiceGuy немного:
Это позволит вам передать объект регулярного выражения в правило.
Сброс
lastIndex
свойства необходим, когда наg
объекте установлен флаг -flagRegExp
. В противном случае он начал бы проверку с позиции последнего совпадения с этим регулярным выражением, даже если строка темы отличается.Некоторые другие мои идеи заключались в том, чтобы дать вам возможность использовать массивы регулярных выражений, и еще одно правило для отрицания регулярных выражений:
Но реализовать их может быть слишком много.
источник
Как упомянуто в документации addMethod :
Обратите внимание: хотя большой соблазн добавить метод регулярного выражения, который проверяет его параметр по значению, гораздо удобнее инкапсулировать эти регулярные выражения в их собственный метод. Если вам нужно много разных выражений, попробуйте извлечь общий параметр. Библиотека регулярных выражений: http://regexlib.com/DisplayPatterns.aspx
Так что да, вы должны добавить метод для каждого регулярного выражения. Накладные расходы минимальны, в то время как они позволяют дать регулярному выражению имя (не следует недооценивать), сообщение по умолчанию (удобно) и возможность многократно использовать его в разных местах, без дублирования самого регулярного выражения снова и снова.
источник
Я получил это, чтобы работать так:
Убедитесь, что регулярное выражение находится между
/
:-)источник
Вы можете использовать
pattern
определенные вadditional-methods.js
файле. Обратите внимание, что этот файл Additional-method.js должен быть включен после зависимости jQuery Validate, тогда вы можете просто использоватьисточник
Это рабочий код.
источник
мы в основном используем нотацию разметки плагина проверки jquery, и размещенные образцы не работают для нас, когда в регулярном выражении присутствуют флаги, например
поэтому мы используем следующий фрагмент
Конечно, теперь можно объединить этот код с одним из вышеперечисленных, чтобы также разрешить передачу объектов RegExp в плагин, но так как он нам не понадобился, мы оставили это упражнение для читателя ;-).
PS: для этого есть также встроенный плагин, https://github.com/jzaefferer/jquery-validation/blob/master/src/additional/pattern.js
источник
Это сработало для меня, будучи одним из правил валидации:
Надеюсь, поможет
источник