Статические методы

Библиотека Inputmask предоставляет набор статических методов, позволяющих выполнять операции форматирования, валидации и преобразования значений без необходимости привязки к конкретному DOM-элементу. Эти методы работают на уровне API и позволяют интегрировать маскирование в бизнес-логику, серверные преобразования данных и утилитарные функции обработки строк.

Одним из ключевых сценариев использования является преобразование «сырого» значения в формат маски без необходимости инициализации инпута.

Метод форматирования применяется в виде:

  • Inputmask.format(value, options)

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

Поведение метода зависит от набора опций:

  • mask — строковое или объектное описание маски
  • definitions — пользовательские символы
  • placeholder — символ заполнителя
  • showMaskOnHover и подобные UI-опции игнорируются, если форматирование происходит вне DOM

Форматирование особенно полезно при подготовке данных перед отправкой на сервер, когда требуется единообразное представление телефонных номеров, дат или идентификаторов.

Проверка соответствия значения маске

Метод валидации позволяет определить, соответствует ли строка заданной маске:

  • Inputmask.isValid(value, options)

Результатом выполнения является булево значение. Проверка осуществляется по тем же правилам, что и при интерактивном вводе, включая:

  • позиционные ограничения символов
  • обязательные и необязательные сегменты
  • регулярные выражения внутри definitions
  • альтернативные маски (alias)

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

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

Преобразование значения в «чистый» формат

Одним из наиболее часто используемых статических методов является извлечение «сырого» значения:

  • Inputmask.unmask(value, options)

Метод удаляет все символы маскирования и возвращает исходные данные в нормализованном виде.

Пример логики работы:

  • удаление литералов маски (скобки, дефисы, пробелы)
  • игнорирование placeholder-символов
  • сохранение только значимых данных (цифры, буквы, разрешённые символы)

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

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

Удаление маски с элемента

Хотя метод ориентирован на DOM-уровень, он также относится к статическому API:

  • Inputmask.remove(elements)

Метод деинициализирует маску и возвращает элемент в исходное состояние. При этом:

  • удаляются обработчики событий
  • очищаются внутренние ссылки Inputmask
  • восстанавливается исходное значение (при наличии конфигурации сохранения)

Может применяться как к одному элементу, так и к коллекции DOM-узлов. Это важно при динамических интерфейсах, где компоненты часто создаются и уничтожаются.

Расширение системы определений символов

Inputmask позволяет модифицировать глобальные правила обработки символов через статические методы расширения:

  • Inputmask.extendDefinitions(definition)
  • Inputmask.extendAliases(alias)

Первый метод отвечает за добавление новых символов маски. Каждый символ описывается через регулярное выражение и набор правил поведения:

  • допустимые символы ввода
  • правила автозамены
  • поведение при удалении

Второй метод расширяет систему алиасов, позволяя создавать переиспользуемые конфигурации масок. Алиасы могут включать:

  • базовую маску
  • предустановленные опции
  • динамические правила обработки

Таким образом формируется слой абстракции над базовыми масками, позволяющий стандартизировать ввод данных в рамках приложения.

Доступ к внутренним механизмам и зависимостям

Внутренние статические свойства библиотеки предоставляют доступ к инфраструктурным компонентам:

  • Inputmask.dependencyLib

Это абстракция над DOM-операциями, позволяющая Inputmask работать с различными реализациями DOM-обёрток. В большинстве случаев используется jQuery-совместимый интерфейс или нативный DOM API.

Также может присутствовать доступ к внутренним конфигурациям, используемым при инициализации экземпляров маски.

Синхронное создание экземпляра через фабричный вызов

Хотя основной акцент Inputmask сделан на экземплярное использование, библиотека поддерживает статический фабричный вызов:

  • Inputmask(options)

Вызов без оператора new возвращает экземпляр маски, эквивалентный созданному через конструктор. Это позволяет унифицировать стиль использования и интегрировать библиотеку в функциональные цепочки вызовов.

Экземпляр, созданный таким образом, может быть сразу применён к элементу:

  • инициализация маски
  • привязка событий
  • применение алиасов

Массовые операции и пакетная обработка значений

Статический API Inputmask допускает обработку наборов данных, что особенно важно при работе с формами и таблицами данных.

Поддерживаются сценарии:

  • форматирование массивов значений
  • валидация коллекций
  • очистка наборов данных от масок

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

Поведение методов при сложных масках

При использовании сложных шаблонов (альтернативные маски, регулярные выражения, условные сегменты) статические методы учитывают те же правила, что и интерактивный ввод:

  • приоритет альтернативных масок определяется порядком объявления
  • частично заполненные значения могут считаться допустимыми
  • регулярные выражения применяются на этапе постобработки

Это обеспечивает идентичность результата между статическими вызовами и пользовательским вводом, исключая расхождения между слоями системы.

Согласованность API и внутренней модели данных

Статические методы опираются на единый механизм парсинга маски, который используется и в экземплярном режиме. Это означает, что:

  • одна и та же конфигурация маски даёт одинаковый результат в format, isValid и unmask
  • внутренние преобразования не зависят от DOM
  • логика обработки символов централизована

Такая архитектура позволяет использовать Inputmask как утилиту для обработки строк вне браузерного контекста, сохраняя совместимость с UI-слоем.