Метод unformat в библиотеке AutoNumeric предназначен для
обратного преобразования отформатированного числового значения в «сырое»
числовое представление. Он удаляет визуальные элементы форматирования,
такие как разделители тысяч, символы валют, пробелы, пользовательские
префиксы и постфиксы, возвращая значение в форме, пригодной для
математических операций или передачи в бизнес-логику.
Основная задача метода — извлечение чистого числа из строки, которая была преобразована AutoNumeric в формат, удобный для отображения пользователю.
В зависимости от контекста применения в AutoNumeric встречаются следующие формы вызова:
AutoNumeric.unformat(formattedValue, options);
или в экземплярном контексте через методы, использующие ту же внутреннюю логику:
anElement.getNumericString(); // близкое по смыслу
anElement.getNumber(); // возвращает число
Метод unformat чаще рассматривается как статическая
утилита для преобразования произвольных строк, а не только значений из
DOM-элементов.
При выполнении unformat происходит последовательная
очистка входного значения:
Пример внутренней логики:
"€ 1.234,56""1.234,56""1234.56"1234.56Метод принимает значение и набор опций, которые определяют правила обратного преобразования:
Ключевые параметры конфигурации, влияющие на результат:
decimalCharacter — символ десятичного разделителя;digitGroupSeparator — разделитель групп разрядов;currencySymbol — символ валюты, подлежащий
удалению;currencySymbolPlacement — положение символа
валюты;negativeSignCharacter — символ отрицательного
числа;outputFormat — формат вывода, влияющий на интерпретацию
результата.Результат unformat зависит от контекста и входных
данных:
Типичный результат:
"1234.56"
или
1234.56
В случае некорректного входного значения возвращается
null либо NaN, если включена числовая
интерпретация.
Метод unformat часто сравнивается с другими средствами
извлечения числового значения.
unformat
getNumber
Number);getNumericString
Ключевое отличие unformat заключается в универсальности:
он способен обрабатывать произвольные строки, не связанные с конкретным
инстансом.
Вход:
"1,234,567.89"
Результат:
"1234567.89"
Вход:
"1.234.567,89"
Результат при соответствующих настройках:
"1234567.89"
Вход:
"€ 9 876,50"
Результат:
"9876.50"
Вход:
"- 1.234,00"
Результат:
"-1234.00"
При использовании вместе с HTML-инпутами AutoNumeric часто хранит
визуально отформатированное значение в value элемента.
unformat используется для извлечения исходного числа перед
отправкой данных на сервер.
Пример логики:
"1 000,75"unformat возвращает: "1000.75"Это позволяет отделить слой представления от слоя данных.
Поведение метода зависит от локальных параметров конфигурации:
. или
,);Неправильно заданные настройки приводят к ошибочной интерпретации числа, особенно при наличии неоднозначных форматов вроде:
"1.234"
которое может быть как «одна тысяча двести тридцать четыре», так и «1.234» в зависимости от локали.
Метод учитывает нестандартные входные данные:
null или "";NaN или
null;Примеры:
unformat("abc123") // "123"
unformat("") // null
unformat("€€€") // null
Метод выполняет последовательную строковую обработку, включающую:
При массовой обработке больших массивов значений основная нагрузка формируется за счёт операций над строками, поэтому эффективность зависит от:
Метод тесно связан с конфигурацией экземпляра и глобальными настройками:
decimalCharacter мгновенно влияют на
результат;Несоответствие конфигурации формату входных данных приводит к частичной или полной потере точности при разформатировании.