Маски ввода

Описание

Маски ввода - предоставляют возможность сообщить системе, какой шаблон или образец должны использовать данные. Применяются для облегчения обработки значений, имеющих фиксированный шаблон, – например, телефонных номеров. Маски ввода нужны для помощи пользователям с вводом предопределенного формата в атрибуте.

Поле "mask" для представлений

Пример

{
  "tabs": [
    {
      "caption": "Информационная система",
      "fullFields": [
        {
          "caption": "Уникальный идентификационный номер ОУ",
          "type": 1,
          "property": "OuId",
          "size": 2,
          "maskName": null,
          "mask": null,

В данный момент возможно задание маски в виде строки или объекта в поле "mask".

Маски по умолчанию

Маски по умолчанию можно переопределить в расширениях:

  • 9 — число
  • a — буква
  • A — буква в верхнем регистре
    • — число или буква

Виды масок

Статичные маски

Статичные маски определены заранее и не изменяется при вводе.

"mask": "aa-9999",
"mask": {"mask": "aa-9999"},

Необязательные маски

Необязательные маски допускают некоторую часть в определении маски сделать необязательной для ввода. В квадратных скобках [] задается необязательная часть ввода.

"mask": {"mask": "(99) 9999[9]-9999"},

Динамичные маски

Динамичные маски могут изменятся при вводе. В фигурных скобках {} задается динамичная часть ввода, применяется к выражению перед скобками:

  • {n} - n повторений
  • {n,m} - с n по m повторений
  • {+} - от 1 и больше повторений
  • {*} - от 0 и больше повторений
"mask": {"mask": "aa-9{1,4}"},

Генерируемые маски

Синтаксис генерируемых масок похож на выражение OR. Маска может быть одной из трех вариантов, указанных в генераторе. Для определения генератора используется |.

"mask": {"mask": "(aaa)|(999)"},
"mask": {"mask": "(aaa|999|9AA)"},

keepStatic

По умолчанию: null (~false). Используется в комбинации с синтаксисом генератора и оставляет маску статичной по мере ввода. Когда задается массив масок, keepStatic автоматически становится равен true, если явно не задан через параметры.

"mask": { "mask": ["+55-99-9999-9999", "+55-99-99999-9999" ], "keepStatic": true },

Результат: Вводим 1212345123 => должны получить +55-12-1234-5123 вводим еще 4 => переключаемся на +55-12-12345-1234

Дополнительные примеры масок:

«99 99 999999» — серия и номер паспорта

«[+]9 (999) 999-99-99» — номер мобильного телефона

«(999)|(aaa)» - позволяет ввести либо три цифры, либо три символа

Сложные маски

Задание сложной маски с определением валидации символов. Допустимые значения полей внутри определения определяются плагином inputmask версии 4.0.0. Задается массивом в field.mask:

field.mask: ["X{1,4}-AA №999999", {definitions: {"X": {validator: "[lLvVcCxX]", cardinality: 1, casing: "upper"}}}]

Где индекс 0 - определение маски, а индекс 1 - дополнительные опции.

Реализованы также маски через «regex».

"mask": {
    "regex": "[A-Za-z]{1,50}"
},

Маски по идентификатору

Для задания маски из вшитого пресета масок используется поле "maskName" атрибутивной части меты представлений. Не реализовано.