Статический метод format

В библиотеке AutoNumeric статический метод format предназначен для преобразования числовых значений или строковых представлений чисел в форматированный вид без привязки к DOM-элементу. В отличие от инстанс-методов, он не требует инициализации экземпляра и не модифицирует input-поля, а возвращает уже отформатированную строку.


Общая сигнатура

AutoNumeric.format(value, options, forceOutput);

Параметры:

  • value — число, строка или значение, которое необходимо отформатировать
  • options — объект конфигурации или ключ предустановки
  • forceOutput — логический флаг, влияющий на поведение обработки некорректных значений

Назначение метода

Статический format применяется в случаях, когда требуется:

  • форматировать число без привязки к input-элементу
  • преобразовать данные перед выводом в UI
  • подготовить значения для API или отчетов
  • унифицировать отображение чисел в серверной логике или утилитах

Ключевое отличие — отсутствие состояния. Метод не хранит контекст форматирования, а работает исключительно на входных данных.


Базовое использование

const formatted = AutoNumeric.format(1234567.89, {
    digitGroupSeparator: ' ',
    decimalCharacter: ',',
    decimalPlaces: 2
});

console.log(formatted); // "1 234 567,89"

Метод возвращает строку, полностью готовую к отображению.


Форматирование числовых строк

Метод способен обрабатывать не только числа, но и строковые значения:

AutoNumeric.format("1000000.5", {
    digitGroupSeparator: ',',
    decimalCharacter: '.',
    decimalPlaces: 1
});

Результат:

1,000,000.5

Внутри происходит нормализация входного значения перед применением правил форматирования.


Работа с отрицательными значениями

AutoNumeric.format(-9876543.21, {
    digitGroupSeparator: ' ',
    decimalCharacter: '.',
    negativeSignCharacter: '-'
});

Результат:

-9 876 543.21

Метод сохраняет знак числа и применяет форматирование только к абсолютной части.


Поведение при некорректных данных

Если передано значение, которое невозможно интерпретировать как число, поведение зависит от параметра forceOutput:

AutoNumeric.format("abc", {}, true);
  • при forceOutput = true возвращается строка, приведённая к безопасному виду (обычно пустая или нулевая форма)
  • при forceOutput = false может быть возвращено исходное значение или выброшена ошибка (в зависимости от конфигурации)

Это позволяет управлять строгой или мягкой обработкой данных.


Использование пресетов

Вместо полного объекта настроек можно использовать предустановки:

AutoNumeric.format(2500, "euro");

Пресет определяет:

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

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


Форматирование валют

AutoNumeric.format(1999.99, {
    currencySymbol: '$',
    currencySymbolPlacement: 'p',
    digitGroupSeparator: ',',
    decimalCharacter: '.',
    decimalPlaces: 2
});

Результат:

$1,999.99

Поддерживаются как префиксное, так и постфиксное размещение символа валюты.


Управление десятичной точностью

AutoNumeric.format(12.34567, {
    decimalPlaces: 2
});

Результат:

12.35

Округление выполняется согласно стандартным математическим правилам библиотеки.


Отключение группировки разрядов

AutoNumeric.format(1000000, {
    digitGroupSeparator: '',
    decimalCharacter: '.'
});

Результат:

1000000

Это полезно для машинного вывода или интеграций с системами, где разделители недопустимы.


Обработка нулевых значений

AutoNumeric.format(0, {
    showOnlyNumbersOnFocus: false,
    decimalPlaces: 2
});

Результат:

0.00

Ноль обрабатывается как полноценное число и форматируется согласно правилам округления и отображения.


Форматирование больших чисел

AutoNumeric.format(9876543210123, {
    digitGroupSeparator: ' ',
    decimalCharacter: '.'
});

Результат:

9 876 543 210 123

Метод не ограничивает разрядность числа и корректно работает с большими значениями, пока они укладываются в допустимый диапазон JavaScript Number.


Особенности работы с дробями

AutoNumeric.format(0.0000123, {
    decimalPlaces: 6
});

Результат:

0.000012

При этом избыточные знаки после заданной точности отбрасываются.


Поведение при строковых форматах с пробелами

AutoNumeric.format("  1 234 567.89  ", {
    digitGroupSeparator: ',',
    decimalCharacter: '.'
});

Результат:

1,234,567.89

Входная строка предварительно очищается от лишних символов пробелов.


Влияние локализации

AutoNumeric.format(1234567.89, {
    digitGroupSeparator: '.',
    decimalCharacter: ','
});

Результат:

1.234.567,89

Метод позволяет имитировать локализованное представление чисел без использования встроенных Intl-форматтеров.


Использование в утилитарных функциях

Статический формат часто применяется в слоях бизнес-логики:

function formatReportValue(value) {
    return AutoNumeric.format(value, {
        digitGroupSeparator: ' ',
        decimalCharacter: '.',
        decimalPlaces: 2
    });
}

Такой подход обеспечивает единообразие отображения чисел во всей системе.


Ограничения метода

  • не работает с DOM-элементами
  • не управляет состоянием инстансов
  • зависит от корректности входных данных
  • ограничен возможностями JavaScript Number (если не используется расширенная обработка строк)

Типичные сценарии использования

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