В числовых масках Inputmask обработка знаков числа реализуется через
два ключевых параметра — allowMinus и
allowPlus. Эти настройки определяют, допустим ли ввод
отрицательных и положительных чисел с явным указанием знака, а также как
именно библиотека интерпретирует символы - и +
в процессе ввода.
Поведение знаков напрямую связано с режимом числового алиаса
(alias: "numeric"), где Inputmask применяет строгую
нормализацию ввода, контроль позиции символов и фильтрацию некорректных
комбинаций.
Параметр allowMinus управляет возможностью ввода
отрицательных значений. При включении допускается ввод символа
-, который интерпретируется как знак отрицательного
числа.
При значении:
allowMinus: true
становится допустимым:
-123-0.5При этом Inputmask обеспечивает строгую нормализацию:
- допускается только в начале значенияЕсли пользователь пытается ввести 12-3, символ
игнорируется или перемещается в корректную позицию в зависимости от
конфигурации поведения вставки.
При:
allowMinus: false
любая попытка ввода - блокируется полностью. Это
распространяется как на ручной ввод, так и на вставку из буфера
обмена.
Типичный эффект:
-123 → 12312-3 → 123- → пустой ввод или игнорированиеТакой режим используется в полях, где отрицательные значения недопустимы: количество товаров, возраст, индексы, суммы без убытков.
Параметр allowPlus управляет возможностью явного
указания положительного знака +.
allowPlus: true
становится допустимым ввод:
+123+0.75Знак + рассматривается как валидный префикс числа и
проходит нормализацию аналогично минусу.
Особенности обработки:
+ допускается только в начале строки++123) блокируютсяПри:
allowPlus: false
символ + полностью исключается из допустимых:
+123 → 12312+3 → 123Комбинация параметров определяет полный набор допустимых знаков:
| allowMinus | allowPlus | Результат |
|---|---|---|
| false | false | только беззнаковые числа |
| true | false | только отрицательные допустимы |
| false | true | только положительные с явным + |
| true | true | полный набор: +123, -123,
123 |
При включении обоих параметров Inputmask воспринимает знак как опциональный префикс, но всегда приводит ввод к единому формату нормализации.
Inputmask применяет строгие правила обработки знака:
В числе допускается только один знак в начале. Любые дополнительные символы считаются ошибочными и удаляются.
Знак всегда фиксируется перед первой значимой цифрой:
-45, +454-5, 4+5При вставке строки библиотека анализирует первый валидный знак:
"+12-3" → +123"-0.8" → -0.8"12-3" → 123 (если allowMinus
выключен)При использовании дробей (radixPoint: ".") знак
применяется ко всему числу целиком:
-12.5+0.75Знак не влияет на дробную часть и не может быть применён отдельно к ней.
Настройка digits не изменяет поведение знаков, но влияет
на итоговое форматирование:
-123.456 при digits: 2 →
-123.45При rightAlign: true знак визуально может отображаться
слева от выровненного числа, но логически остаётся частью значения:
-12При установке значения через API:
$(input).inputmask("setvalue", "-100");
Inputmask проверяет:
allowMinus и
allowPlusЕсли знак запрещён, он удаляется до применения маски.
Число 0 в комбинации со знаками обрабатывается как
отдельный случай:
-0 допустимо при allowMinus: true+0 допустимо при allowPlus: trueНекоторые реализации нормализуют такие значения до 0, но
Inputmask сохраняет знак как часть ввода до финальной сериализации, если
не включена дополнительная обработка.
Система Inputmask предотвращает ряд некорректных состояний:
- без
цифр может быть временно допустим в процессе ввода)При backspace и delete логика зависит от позиции курсора:
Логика обработки знаков в Inputmask можно представить как последовательность нормализации:
+ или
-)allowPlus /
allowMinusОбе настройки формируют базовый слой контроля над семантикой числа.
Они определяют не только допустимость символов + и
-, но и всю модель интерпретации знака как части числового
значения. В сочетании с другими параметрами числового алиаса они
обеспечивают строгую, предсказуемую и воспроизводимую обработку ввода,
исключая неоднозначные состояния строки на любом этапе
редактирования.