JavaScript/Objekte/Number/toLocaleString

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Methode Number.toLocaleString() -Methode gibt eine die Number repräsentierende Zeichenkette zurück. Der Rückgabewert ist ähnlich dem Ergebnis von toString(), kann aber die Spracheinstellungen des Betriebssystems berücksichtigen um die Darstellung von Tausender-Separator und Dezimaltrennzeichen zu verändern. EcmaScript 5 definiert es als "zulässig, aber nicht erwünscht", wenn toLocaleString() nichts anderes tut als toString().

Syntax: Number.toLocaleString([locales [, options]])

Mittels des locales Parameters kann angegeben werden, welche Locale zur Aufbereitung verwendet werden sollen. Die Locale-Angaben entsprechen dem BCP 47 Sprachidentifizierer. Es können mehrere Locales, durch Leerstelle getrennt angegeben werden. Das erste vom System unterstützte Locale wird verwendet.

Der options-Parameter definiert unterschiedlichste Regeln zur Aufbereitung. Hierfür sei einstweilen auf das MDN verwiesen.

Beispiel
var number = 3500.10;
var options = {
	style: "currency",
	currency: "EUR"
};

console.log(number.toLocaleString());
console.log(number.toLocaleString("de-DE", options));
1. Gibt "3.500,10" aus wenn das Betriebssystem auf das de-DE Locale eingestellt ist
2. Gibt "3.500,10 €" aus, wenn das Betriebssystem die deutsche Locale unterstützt.

Die Parameter locales und options wurden erst später ergänzt. Folgen Sie dem caniuse-Link für Kompatibilitätsinformationen. Wenn Sie alte Browser unterstützen wollen, können Sie mit dem folgenden Algorithmus erkennen, ob die zusätzlichen Parameter unterstützt werden. Der letzte Browser, der diese Abfrage brauchte, war allerdings Safari 9.1, seit 2016 ist Safari 10 verfügbar und kompatibel.

Feature-Erkennung des locale Parameters
function toLocaleStringSupportsLocales() {
   // Funktion liefert true wenn der locale Parameter unterstützt wird.
   try {
      number.toLocaleString("i");
   } catch (e) {
      return e.name === "RangeError";
   }
   return true;
}
Quelle: MDN

Weblinks