2016-05-12 14 views
1

Ich versuche, eine Währungsformatierungsfunktion mit Intl.NumberFormat zu schreiben. Es funktioniert korrekt, wenn ich Dinge wie USD oder EUR als Währung übergebe, aber es scheint zu brechen, wenn ich ihm unbekannte Währungscodes wie PLN oder COL übergebe, und anstatt seine Symbole wie gewünscht anzuzeigen, werden die Codes angezeigt. Es erkennt deutlich den Code, denn wenn ich es fragen, anstatt den Namen angezeigt werden es richtig funktioniert:Browser intl.NumberFormat zeigt keine Währungssymbole korrekt an

Intl.NumberFormat("en-US",{ 
    style:'currency', 
    minimumIntegerDigits:1, 
    currency: 'PLN', 
    currencyDisplay: 'symbol' 
}).format(43); 

Displays "PLN43" während

Intl.NumberFormat("en-US",{ 
    style:'currency', 
    minimumIntegerDigits:1, 
    currency: 'PLN', 
    currencyDisplay: 'name' 
}).format(43); 

Displays "43.00 polnischen Zlotys"

+0

Kein Zugriff auf die Überprüfung zuerst, aber was passiert, wenn Sie PL-PL als ersten Parameter in den obigen Beispielen angeben? –

Antwort

-1

Nach an die spec:

Allerdings die Kombination von Währungscode und Sprache Tag fo r Welche lokalen Währungssymbole verfügbar sind, hängt von der Implementierung ab. Wenn ein lokales Währungssymbol nicht verfügbar ist, wird der Währungscode nach ISO 4217 für die Formatierung verwendet.

+0

Was bedeutet "nicht verfügbar" ...? Kann ich irgendwo die Währungssymbole für diese ISO-Codes beisteuern, damit ich diesen Formatierer weiter verwenden kann oder muss ich eine alternative Lösung finden? –

+0

Ich könnte vorschlagen, verfügbar sind [Symbole, die in Unicode vorhanden sind] (http://www.fileformat.info/info/unicode/category/Sc/list.htm). –