2016-10-05 2 views
1

Ich habe Probleme Parsen negative Zahlen mit jQuery 1.1.1 globalisieren:jQuery Globalize analysieren negative Zahl

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

So scheint es Globalize die negative Zahl auf eine positive Zahl konvertiert. Die folgende CLDR-Daten werden geladen:

  • Ergänzungs/likelySubtags
  • ergänzende/Timedata
  • Ergänzungs/weekData
  • Ergänzungs/numberingSystems
  • main/sv/Zahlen
  • main/sv/timeZoneNames
  • Haupt/sv/ca-gregorian

Es konnte nichts gefunden werden über Google-Suche. Fehle ich etwas?

+0

Der einfachste Weg, um mit ihm direkt verwenden, um die 'Number' Konstruktor ist. zB 'Number ('- 100.00')' Das Standardverhalten bei einem eingebauten Konstruktor ist die Rückgabe eines Primitivs desselben Typs. – synthet1c

+0

Der Nummernkonstruktor scheint nicht mit lokalen Zahlenformaten zu funktionieren: Zahl ('- 100,00') gibt NaN zurück – Fraggel

+0

Sorry, das Kommatrennzeichen wurde nicht gefunden. – synthet1c

Antwort

0

Globalize (1.1.x) leitet das Minuszeichen-Symbol von CLDR beim Parsen ab. Auf Schwedisch (sv) ist das Minuszeichen (0x2212) nicht - (0x2D) wie in Ihrem Beispiel oben. Deshalb funktioniert es nicht für dich. Ein schneller Test-Parsing für negative Zahlen zu behaupten ist:

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

gesagt haben, dass es wie „Loose Matching“ erscheint, ist eine Funktion, die von Ihrem Interesse sein könnten. Es würde die verschiedenen Arten von Bindestrichen, Leerzeichen ohne Leerzeichen, Komma als Abkürzung usw. vor dem Parsen normalisieren. Es wird von Globalize nicht unterstützt. Wir verfolgen hier ein solches Merkmal:

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