Параметр radixPoint определяет символ, используемый для
отделения целой и дробной части числа в числовых масках библиотеки
Inputmask. Он играет ключевую роль в форматировании ввода с плавающей
точкой, влияя на отображение, парсинг и внутреннюю нормализацию
значения.
В основе числовой маски лежит необходимость различать два
представления числа: пользовательское (форматированное) и машинное
(нормализованное). radixPoint задаёт именно
пользовательский разделитель дробной части, который может отличаться от
стандартного символа точки.
radixPoint используется преимущественно в конфигурациях
с алиасом numeric и всеми масками, поддерживающими дробные
значения.
Основные задачи:
Параметр задаётся в объекте настроек маски:
Inputmask("numeric", {
radixPoint: "."
}).mask(selector);
В данном случае дробная часть отделяется точкой, что соответствует стандарту JavaScript и англоязычной нотации чисел.
В различных локалях используется разный символ разделителя:
.) — англоязычные системы;,) — большая часть европейских локалей.Inputmask позволяет адаптировать ввод без изменения бизнес-логики приложения:
Inputmask("numeric", {
radixPoint: ","
}).mask(selector);
При такой конфигурации ввод 12,5 интерпретируется как
число с дробной частью 5 десятых.
radixPoint тесно связан с параметром
groupSeparator, который отвечает за разделение тысячных
разрядов.
Пример совместной конфигурации:
Inputmask("numeric", {
radixPoint: ",",
groupSeparator: " ",
autoGroup: true
}).mask(selector);
Форматирование при вводе:
1234567,891 234 567,89Ключевой момент заключается в том, что radixPoint всегда
отделяет дробную часть, независимо от группировки целой части.
Внутренний механизм Inputmask обрабатывает radixPoint
как контрольный символ, запрещающий множественное появление дробного
разделителя.
Сценарии поведения:
radixPoint переводит ввод в дробную
часть;Inputmask допускает ввод альтернативных символов, которые
автоматически преобразуются в radixPoint. Например, при
настройке запятой как разделителя точка может быть интерпретирована как
допустимый ввод.
Inputmask("numeric", {
radixPoint: ",",
// альтернативные символы обрабатываются внутренней логикой
}).mask(selector);
В результате:
12.5 преобразуется в 12,5;radixPoint определяет границу дробной части, но её
поведение зависит от параметров точности:
Inputmask("numeric", {
radixPoint: ".",
digits: 2,
digitsOptional: false
}).mask(selector);
Комбинации:
digits задаёт фиксированное количество знаков после
разделителя;digitsOptional делает дробную часть
необязательной;radixPoint фиксирует символ разделения.Пример:
1010.00 (при digits: 2)Внутреннее значение Inputmask всегда приводится к стандартному виду,
независимо от отображаемого radixPoint.
Например:
Inputmask("numeric", {
radixPoint: ","
}).mask(selector);
При вводе:
3,143.14Таким образом, radixPoint влияет только на визуальный
слой, не изменяя семантику числа.
Использование radixPoint накладывает ряд поведенческих
ограничений:
Особое внимание требуется при вставке значений из буфера обмена: Inputmask выполняет автоматическую очистку и приводит строку к корректному формату.
При включённой поддержке отрицательных значений
radixPoint остаётся независимым от знака:
Inputmask("numeric", {
radixPoint: ".",
allowMinus: true
}).mask(selector);
Примеры допустимого ввода:
-12.5-0.750.25Знак минуса фиксируется отдельно и не влияет на позиционирование дробного разделителя.
При активных настройках форматирования Inputmask перераспределяет вводимые символы:
radixPoint;Это обеспечивает стабильное поведение при быстром наборе и вставке длинных чисел.
Удаление radixPoint приводит к изменению структуры
числа:
При обратном вводе дробная часть создаётся заново.
В numeric-алиасе radixPoint является
базовым параметром форматирования и часто используется совместно с:
digits;digitsOptional;autoGroup;allowMinus;rightAlign.Конфигурации numeric-масок без явного указания
radixPoint используют значение по умолчанию, зависящее от
внутренней локали или стандартной настройки библиотеки.
При вставке строк Inputmask анализирует структуру числа:
radixPoint;Например:
1.234,56 при radixPoint: ","
приводит к 1234,56.radixPoint выступает связующим элементом между
пользовательским вводом и числовой моделью данных. Он не просто задаёт
символ, а определяет структуру восприятия дробных значений в рамках
маски:
Вся система числовых масок Inputmask строится вокруг согласованной
работы radixPoint с другими параметрами форматирования,
формируя единый механизм обработки числового ввода.