jQuery Globalize разобрать отрицательное число

У меня проблемы с анализом отрицательных чисел с помощью jQuery Globalize 1.1.1:

Globalize.parseNumber('-1'); // = 1
Globalize.parseNumber('-100,00'); // = 100

Таким образом, кажется, что Globalize преобразует отрицательное число в положительное число. Загружены следующие CLDR-данные:

  • дополнительные /likelySubtags
  • Дополнительный / TimeData
  • Дополнительный /weekData
  • дополнительные /numberingSystems
  • Основной / SV / номер
  • Основной / SV /timeZoneNames
  • Главный / SV / CA-н.с.

Не удалось найти что-либо по этому вопросу с помощью Google-поиска. Я что-то пропустил?

1 ответ

Решение

Globalize (1.1.x) выводит символ минуса из CLDR при разборе. На шведском (sv) знак минус (0x2212) не - (0x2D), как вы использовали в своем примере выше. Вот почему это не работает для вас. Быстрый тест для подтверждения синтаксического анализа отрицательных чисел:

var sv = Globalize("sv");
sv.parseNumber(sv.formatNumber(-100)) === -100; // > true

Сказав это, кажется, что "Loose Matching" - это функция, которая может вас заинтересовать. Он нормализует различные типы тире, пробел без пробелов в пространстве, запятую, используемую в качестве сокращения и т. Д. Перед анализом. Это не поддерживается Globalize. Мы отслеживаем такую ​​функцию здесь:

https://github.com/jquery/globalize/issues/292

Другие вопросы по тегам