digitGroupSeparator

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


Назначение и роль в форматировании

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

  • 1000000
  • 1234567890

С применением группировки:

  • 1,000,000
  • 1,234,567,890

Параметр digitGroupSeparator определяет символ, который вставляется между этими группами.


Базовое поведение

В стандартной конфигурации AutoNumeric используется запятая:

{
    digitGroupSeparator: ','
}

Пример отображения:

  • Ввод: 1000000
  • Отображение: 1,000,000

При этом внутреннее значение остаётся числом 1000000, а форматирование применяется только к строковому представлению в input-элементе.


Поддерживаемые символы

AutoNumeric не ограничивает выбор символа разделителя. Возможны различные варианты в зависимости от локали и требований интерфейса.

Запятая (английская локаль)

digitGroupSeparator: ','

Формат:

  • 1,234,567

Точка (европейские форматы)

digitGroupSeparator: '.'

Формат:

  • 1.234.567

Пробел (международный стандарт ISO/IEC 80000)

digitGroupSeparator: ' '

Формат:

  • 1 234 567

Неразрывный пробел

digitGroupSeparator: '\u00A0'

Используется для предотвращения разрыва числа при переносе строки:

  • 1 234 567

Это особенно важно в таблицах, отчётах и финансовых интерфейсах.


Полное отключение группировки

Если группировка не требуется, параметр задаётся пустой строкой:

digitGroupSeparator: ''

Формат:

  • 1234567

Влияние на ввод данных

AutoNumeric использует форматирование в реальном времени. При вводе числа:

  1. Пользователь вводит символы
  2. Библиотека очищает значение от форматирования
  3. Применяет группировку разрядов
  4. Отображает отформатированное значение

Пример:

  • Ввод: 1000000
  • После обработки: 1,000,000

При удалении символов AutoNumeric автоматически корректирует группы разрядов, сохраняя целостность числа.


Связь с digitGroupSpacing

Параметр digitGroupSeparator работает совместно с digitGroupSpacing, который определяет размер группировки.

Стандартная группировка (по 3 цифры)

digitGroupSeparator: ',',
digitGroupSpacing: 3

Результат:

  • 1,234,567,890

Нетипичная группировка

digitGroupSeparator: ' ',
digitGroupSpacing: 2

Результат:

  • 12 34 56 78 90

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


Локализация и региональные стандарты

Разные регионы используют разные соглашения о форматировании чисел:

Регион Разделитель
США, Великобритания ,
Германия, Франция (в некоторых случаях) .
Индия , с нестандартной группировкой
Международный стандарт пробел

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


Взаимодействие с decimalCharacter

Важно учитывать, что digitGroupSeparator не должен конфликтовать с десятичным разделителем decimalCharacter.

Неправильная конфигурация:

digitGroupSeparator: '.',
decimalCharacter: '.'

Такая настройка приводит к неоднозначности при парсинге числа.

Корректные комбинации:

digitGroupSeparator: '.',
decimalCharacter: ','

или

digitGroupSeparator: ',',
decimalCharacter: '.'

Динамическое изменение параметра

AutoNumeric позволяет изменять форматирование на лету:

anInstance.update({
    digitGroupSeparator: ' '
});

После обновления все текущие значения автоматически переформатируются в соответствии с новым правилом.


Влияние на сериализацию данных

При извлечении значения через API AutoNumeric:

  • .getNumericString() — возвращает число без разделителей
  • .getFormatted() — возвращает строку с разделителями
  • .getNumber() — возвращает числовой тип

Пример:

Формат на экране:

  • 1,234,567

Методы:

an.getNumericString(); // "1234567"
an.getFormatted();     // "1,234,567"
an.getNumber();        // 1234567

digitGroupSeparator влияет только на .getFormatted() и визуальное представление.


Использование в финансовых интерфейсах

В банковских и бухгалтерских системах параметр применяется для:

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

Часто используется совместно с:

  • фиксированной точностью (decimalPlaces)
  • ограничением диапазона (minimumValue, maximumValue)
  • валютными префиксами (currencySymbol)

Пример конфигурации:

{
    digitGroupSeparator: ',',
    decimalCharacter: '.',
    decimalPlaces: 2,
    currencySymbol: '$',
    currencySymbolPlacement: 'p'
}

Производительность и особенности рендеринга

AutoNumeric оптимизирует форматирование так, чтобы:

  • минимизировать перерасчёт строк
  • избегать лишних DOM-операций
  • сохранять плавность ввода даже при больших числах

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


Ограничения и поведение при ошибках

Если в качестве digitGroupSeparator передан некорректный тип:

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

Пример нежелательной конфигурации:

digitGroupSeparator: null

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


Совместимость с браузерами

Параметр полностью зависит от JavaScript-строк и не использует системные API форматирования чисел, поэтому:

  • одинаково работает во всех современных браузерах
  • не зависит от Intl.NumberFormat
  • не требует локальных настроек ОС

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

digitGroupSeparator является одним из ключевых параметров визуального форматирования в AutoNumeric, поскольку:

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

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