Метод unformatLocalized в библиотеке AutoNumeric
предназначен для преобразования локализованного строкового представления
числа обратно в «чистый» числовой формат с учётом текущих правил локали.
В отличие от базового unformat, который работает с
универсальными настройками форматирования,
unformatLocalized учитывает особенности конкретной локали:
разделители тысяч, десятичные символы, возможные нестандартные символы
группировки и правила отображения отрицательных значений.
Основная задача метода — корректно извлекать числовое значение из строки, которая была сформирована с применением локализованного форматирования.
Ключевая особенность:
Метод особенно важен в системах, где пользовательский ввод зависит от региональных настроек, например:
1.234,56;1,234.56;AutoNumeric.unformatLocalized(formattedValue, options);
или в контексте экземпляра:
anElement.unformatLocalized();
В зависимости от версии библиотеки и способа использования, метод может быть доступен как статический и как метод экземпляра.
Тип: string
Строка, содержащая локализованное числовое значение. Может включать:
Тип: object (опционально)
Объект дополнительных параметров, влияющих на процесс преобразования. В зависимости от конфигурации AutoNumeric может поддерживать:
decimalCharacterdigitGroupSeparatorcurrencySymbolnegativePositiveSignPlacementoverrideLocalSettingsЭти параметры позволяют переопределять локальные правила при разборе строки.
Внутренняя логика unformatLocalized включает несколько
этапов обработки входной строки:
Нормализация символов
Определение локальных разделителей
Удаление группировки
Приведение к стандартному виду
.
(внутренний формат JavaScript);parseFloat или
Number.Возврат результата
Методы unformat и unformatLocalized решают
схожую задачу, но различаются уровнем учёта локали.
| Характеристика | unformat | unformatLocalized |
|---|---|---|
| Учет локали | минимальный | полный |
| Поддержка нестандартных разделителей | ограниченная | расширенная |
| Надёжность при мультиязычном вводе | средняя | высокая |
| Использование пользовательских локалей | частичное | полное |
unformatLocalized применяется в сценариях, где входные
данные могут быть сформированы вне контроля библиотеки, например:
const formatted = "1.234,56";
const raw = AutoNumeric.unformatLocalized(formatted);
console.log(raw); // "1234.56"
В данном случае строка с европейским форматированием преобразуется в стандартное представление.
const formatted = "2 500 000,99";
const value = AutoNumeric.unformatLocalized(formatted, {
decimalCharacter: ",",
digitGroupSeparator: " "
});
console.log(value); // "2500000.99"
Метод корректно интерпретирует пробел как разделитель тысяч и запятую как десятичный символ.
const formatted = "€ 9.876,50";
const result = AutoNumeric.unformatLocalized(formatted, {
currencySymbol: "€",
currencySymbolPlacement: "p"
});
console.log(result); // "9876.50"
Символ валюты игнорируется при преобразовании, если он указан в настройках.
const formatted = "١٬٢٣٤٫٥٦"; // арабская запись
const value = AutoNumeric.unformatLocalized(formatted, {
decimalCharacter: "٫",
digitGroupSeparator: "٬"
});
console.log(value); // "1234.56"
Метод поддерживает Unicode-разделители, характерные для арабской локали.
Если входная строка содержит некорректные или смешанные символы, поведение метода зависит от конфигурации:
NaN или пустое
значение;Примеры проблемных входных данных:
"12,34,56" (двойная группировка);"1.2.3,45" (несогласованные разделители);"ABC123,45" (лишние символы).unformatLocalized часто применяется как обратная
операция к форматированию:
const formatted = anElement.getNumberString();
const numericValue = AutoNumeric.unformatLocalized(formatted);
Это позволяет обеспечить симметрию:
Метод оптимизирован для массовой обработки строковых значений. При работе с большими массивами данных следует учитывать:
В высоконагруженных сценариях (например, таблицы с тысячами строк) рекомендуется предварительно нормализовать данные или кэшировать параметры локали.
Если входная строка:
результат зависит от конфигурации AutoNumeric:
"";0;NaN.Эта гибкость позволяет адаптировать поведение под бизнес-логику приложения.
Несмотря на расширенную поддержку локалей, существуют ограничения:
Метод предполагает, что формат строки в целом соответствует одной локальной системе, даже если допускаются незначительные отклонения.