Библиотека Inputmask предоставляет набор статических методов, позволяющих выполнять операции форматирования, валидации и преобразования значений без необходимости привязки к конкретному DOM-элементу. Эти методы работают на уровне API и позволяют интегрировать маскирование в бизнес-логику, серверные преобразования данных и утилитарные функции обработки строк.
Одним из ключевых сценариев использования является преобразование «сырого» значения в формат маски без необходимости инициализации инпута.
Метод форматирования применяется в виде:
Inputmask.format(value, options)Он принимает исходную строку и конфигурацию маски, после чего возвращает строку, приведённую к заданному шаблону. Внутри используется тот же механизм, что и при работе с DOM-инпутом, включая определения символов, алиасы и правила заполнения.
Поведение метода зависит от набора опций:
mask — строковое или объектное описание маскиdefinitions — пользовательские символыplaceholder — символ заполнителяshowMaskOnHover и подобные UI-опции игнорируются, если
форматирование происходит вне DOMФорматирование особенно полезно при подготовке данных перед отправкой на сервер, когда требуется единообразное представление телефонных номеров, дат или идентификаторов.
Метод валидации позволяет определить, соответствует ли строка заданной маске:
Inputmask.isValid(value, options)Результатом выполнения является булево значение. Проверка осуществляется по тем же правилам, что и при интерактивном вводе, включая:
Механизм проверки не требует привязки к input-элементу и может использоваться в слоях бизнес-логики, например при проверке данных, полученных из внешних источников.
Особенность реализации заключается в том, что валидность определяется не только по длине строки, но и по структуре соответствия шаблону, включая частично заполненные маски, если это допускается конфигурацией.
Одним из наиболее часто используемых статических методов является извлечение «сырого» значения:
Inputmask.unmask(value, options)Метод удаляет все символы маскирования и возвращает исходные данные в нормализованном виде.
Пример логики работы:
Данный метод применяется при сохранении данных в базу, где форматирование не требуется, либо при сравнении значений без учёта отображения.
Важной особенностью является возможность работы как с одиночным значением, так и с массивом значений при соответствующей конфигурации маски.
Хотя метод ориентирован на DOM-уровень, он также относится к статическому API:
Inputmask.remove(elements)Метод деинициализирует маску и возвращает элемент в исходное состояние. При этом:
Может применяться как к одному элементу, так и к коллекции DOM-узлов. Это важно при динамических интерфейсах, где компоненты часто создаются и уничтожаются.
Inputmask позволяет модифицировать глобальные правила обработки символов через статические методы расширения:
Inputmask.extendDefinitions(definition)Inputmask.extendAliases(alias)Первый метод отвечает за добавление новых символов маски. Каждый символ описывается через регулярное выражение и набор правил поведения:
Второй метод расширяет систему алиасов, позволяя создавать переиспользуемые конфигурации масок. Алиасы могут включать:
Таким образом формируется слой абстракции над базовыми масками, позволяющий стандартизировать ввод данных в рамках приложения.
Внутренние статические свойства библиотеки предоставляют доступ к инфраструктурным компонентам:
Inputmask.dependencyLibЭто абстракция над DOM-операциями, позволяющая Inputmask работать с различными реализациями DOM-обёрток. В большинстве случаев используется jQuery-совместимый интерфейс или нативный DOM API.
Также может присутствовать доступ к внутренним конфигурациям, используемым при инициализации экземпляров маски.
Хотя основной акцент Inputmask сделан на экземплярное использование, библиотека поддерживает статический фабричный вызов:
Inputmask(options)Вызов без оператора new возвращает экземпляр маски,
эквивалентный созданному через конструктор. Это позволяет унифицировать
стиль использования и интегрировать библиотеку в функциональные цепочки
вызовов.
Экземпляр, созданный таким образом, может быть сразу применён к элементу:
Статический API Inputmask допускает обработку наборов данных, что особенно важно при работе с формами и таблицами данных.
Поддерживаются сценарии:
Такие операции выполняются через повторное применение соответствующих статических методов, но в рамках единых конфигураций, что обеспечивает согласованность результата.
При использовании сложных шаблонов (альтернативные маски, регулярные выражения, условные сегменты) статические методы учитывают те же правила, что и интерактивный ввод:
Это обеспечивает идентичность результата между статическими вызовами и пользовательским вводом, исключая расхождения между слоями системы.
Статические методы опираются на единый механизм парсинга маски, который используется и в экземплярном режиме. Это означает, что:
format, isValid и unmaskТакая архитектура позволяет использовать Inputmask как утилиту для обработки строк вне браузерного контекста, сохраняя совместимость с UI-слоем.