В библиотеке Inputmask работа с целыми числами строится вокруг ограничения вводимых символов исключительно цифровым набором с дополнительным контролем над знаками, группировкой разрядов и правилами нормализации значения. Основной задачей такого режима является исключение любых нечисловых символов и приведение пользовательского ввода к строго формализованному виду, пригодному для последующей обработки в логике приложения или отправки на сервер.
Для целых чисел применяется специализированный алиас
integer, который представляет собой преднастроенную
конфигурацию маски, ориентированную на ввод целых значений без дробной
части.
Inputmask("integer").mask(document.querySelector("input"));
Данный режим автоматически ограничивает ввод символами
0–9, блокируя любые другие типы данных, включая буквы,
пробелы и разделители, не относящиеся к целым числам.
Алиас integer в Inputmask является конфигурационной
обёрткой над базовыми правилами цифровой маски. Его поведение
эквивалентно набору параметров, определяющих допустимые символы, правила
группировки и обработку знака числа.
Типичная структура включает:
Inputmask({
alias: "integer"
}).mask(input);
Использование алиаса предпочтительнее ручной конфигурации при стандартных сценариях ввода чисел, поскольку снижает вероятность ошибок при настройке параметров.
При работе с целыми числами часто требуется ограничить допустимый
диапазон. Inputmask предоставляет параметры min и
max, которые задают нижнюю и верхнюю границы значения.
Inputmask({
alias: "integer",
min: 0,
max: 1000
}).mask(input);
Механизм контроля диапазона работает на уровне валидации введённого значения, предотвращая выход за пределы допустимого интервала. При этом ввод символов не блокируется мгновенно на уровне каждого нажатия клавиши, а корректируется при завершении ввода или потере фокуса, в зависимости от конфигурации.
Поддержка отрицательных значений регулируется параметром
allowMinus. Включение этого параметра позволяет
использовать символ минуса в начале числа.
Inputmask({
alias: "integer",
allowMinus: true
}).mask(input);
При отключённом режиме любые попытки ввода знака -
игнорируются, а значение принудительно приводится к положительному
числу.
Поведение маски при работе с отрицательными значениями включает:
Для повышения читаемости больших чисел используется группировка
разрядов. В Inputmask это реализуется через параметры
autoGroup и groupSeparator.
Inputmask({
alias: "integer",
autoGroup: true,
groupSeparator: " "
}).mask(input);
При включённой группировке число 1000000 может
отображаться как 1 000 000. При этом внутреннее значение
остаётся чисто числовым, без разделителей.
Группировка применяется только к визуальному представлению и не влияет на исходные данные при извлечении значения через API библиотеки.
Поведение отображения чисел в поле ввода регулируется параметром
rightAlign. Для числовых значений часто используется
выравнивание по правому краю, имитирующее поведение калькуляторов и
финансовых интерфейсов.
Inputmask({
alias: "integer",
rightAlign: true
}).mask(input);
Выравнивание влияет исключительно на визуальную сторону и не изменяет порядок символов в модели данных.
Дополнительно может использоваться параметр
clearMaskOnLostFocus, который определяет, будет ли поле
очищаться при потере фокуса, если значение неполное или
некорректное.
Inputmask обрабатывает не только посимвольный ввод, но и вставку
строк. При использовании алиаса integer любые вставляемые
данные проходят фильтрацию:
Вставка строки abc-12 34xyz преобразуется в
-1234 при включённом allowMinus.
Помимо алиаса integer, целые числа могут задаваться
через низкоуровневые маски с использованием цифровых токенов. Символ
9 обозначает обязательную цифру, а # может
использоваться для необязательных позиций в зависимости от
конфигурации.
Inputmask("9{1,10}").mask(input);
Такой подход задаёт ограничение на длину числа, например от 1 до 10 цифр. Подобная конфигурация применяется в случаях, когда требуется строгий контроль длины идентификаторов или кодов.
Внутреннее значение Inputmask отличается от отображаемого. Для
извлечения «чистого» числа используется параметр
unmaskAsNumber или методы получения unmasked value.
const value = input.inputmask.unmaskedvalue();
При этом:
Нормализация обеспечивает единообразие данных при передаче в бизнес-логику.
Валидация в режиме integer основана на нескольких
уровнях контроля:
min,
max);Функция проверки корректности может использоваться через встроенные механизмы Inputmask, обеспечивающие определение завершённости и валидности значения.
Маска целых чисел часто используется совместно с HTML-формами и внешними библиотеками валидации. В таких сценариях Inputmask отвечает исключительно за формат ввода, тогда как бизнес-валидация выполняется отдельно.
При отправке формы важно учитывать, что отображаемое значение может содержать форматирование, тогда как фактическое значение должно извлекаться через unmask-методы.
Работа маски тесно связана с событиями ввода:
Эти механизмы обеспечивают согласованность данных независимо от способа ввода — клавиатура, вставка или автозаполнение браузера.
В интерфейсах с большим количеством числовых полей Inputmask с
алиасом integer обеспечивает унифицированную обработку
данных. Поведение маски остаётся стабильным при массовом применении,
поскольку логика ограничивается простыми операциями фильтрации символов
и форматирования.
Особое значение имеет минимизация побочных эффектов при обновлении DOM, так как маска не изменяет структуру элемента, а работает поверх событийной модели ввода.