← к списку статей

29.10.10 (последнее изменение 02 ноября 2010)

Маскирование

Как проверить значение поля формы на соответствие регулярному выражению.

Существуют различные плагины (masked input plugin, meioMask), позволяющие применить маску к полю формы. Но такая маска обладает одним недостатком — она привязывает к полю шаблон с фиксированным количеством символов. С помощью таких плагинов нельзя, например, создать поле для ввода десятичного числа с любым количеством знаков до и после запятой.

Возникла потребность прикрутить к полю формы именно регулярное выражение. Идея реализации простая — по мере ввода проверять содержимое на соответствие заданному регулярному выражению и применять к полю один из трех классов «editing», «match», «notmatch». Класс привязывается не к самому полю, а к одному из врапперов — по вкусу. Далее с помощью таблицы стилей класс отображается в соответствии со статусом.

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

Скопируйте себе этот код и он должен сразу заработать.

Несколько слов о настройках.

  • re — обязательный ключ, его значение — регулярное выражение
  • editingClass — строка, название класса для враппера в процессе печати, по-умолчанию ‘editing
  • matchClass — строка, название класса для враппера когда текст соответствует регулярному выражению, по-умолчанию ‘match
  • notmatchClass — строка, название класса для враппера когда текст НЕ соответствует регулярному выражению, по-умолчанию ‘notmatch
  • checkInterval — число, интервал в миллисекундах для проверки соответствия текста регулярному выражению, по-умолчанию 500
  • remainEditing — число, интервал в миллисекундах между прекращением редактирования и появлением статуса notmatch, по-умолчанию 3000

← к списку статей