Intl.NumberFormat
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2017 browserübergreifend verfügbar.
Das Objekt Intl.NumberFormat ermöglicht die sprachabhängige Formatierung von Zahlen.
Probieren Sie es aus
const number = 123456.789;
console.log(
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
number,
),
);
// Expected output: "123.456,79 €"
// The Japanese yen doesn't use a minor unit
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
number,
),
);
// Expected output: "¥123,457"
// Limit to three significant digits
console.log(
new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
number,
),
);
// Expected output: "1,23,000"
Konstruktor
Intl.NumberFormat()-
Erstellt ein neues
NumberFormat-Objekt.
Statische Methoden
Intl.NumberFormat.supportedLocalesOf()-
Gibt ein Array mit den bereitgestellten Locales zurück, die unterstützt werden, ohne auf das Standard-Locale der Laufzeitumgebung zurückgreifen zu müssen.
Instanzeigenschaften
Diese Eigenschaften sind auf Intl.NumberFormat.prototype definiert und werden von allen Intl.NumberFormat-Instanzen gemeinsam genutzt.
Intl.NumberFormat.prototype.constructor-
Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für
Intl.NumberFormat-Instanzen ist der Anfangswert derIntl.NumberFormat-Konstruktor. Intl.NumberFormat.prototype[Symbol.toStringTag]-
Der Anfangswert der Eigenschaft
[Symbol.toStringTag]ist die Zeichenfolge"Intl.NumberFormat". Diese Eigenschaft wird inObject.prototype.toString()verwendet.
Instanzmethoden
Intl.NumberFormat.prototype.format()-
Getter-Funktion, die eine Zahl entsprechend dem Locale und den Formatierungsoptionen dieses
Intl.NumberFormat-Objekts formatiert. Intl.NumberFormat.prototype.formatRange()-
Formatiert einen Zahlenbereich entsprechend dem Locale und den Formatierungsoptionen des
Intl.NumberFormat-Objekts, für das die Methode aufgerufen wird. Intl.NumberFormat.prototype.formatRangeToParts()-
Gibt ein
Arrayvon Objekten zurück, die die Zeichenfolgen des Zahlenbereichs in einzelnen Bestandteilen darstellen und für eine benutzerdefinierte, Locale-abhängige Formatierung verwendet werden können. Intl.NumberFormat.prototype.formatToParts()-
Gibt ein
Arrayvon Objekten zurück, die die Zahlenzeichenfolge in einzelnen Bestandteilen darstellen und für eine benutzerdefinierte, Locale-abhängige Formatierung verwendet werden können. Intl.NumberFormat.prototype.resolvedOptions()-
Gibt ein neues Objekt mit Eigenschaften zurück, die das bei der Initialisierung des Objekts ermittelte Locale und die Formatierungsoptionen widerspiegeln.
Beispiele
>Grundlegende Verwendung
Bei der grundlegenden Verwendung ohne Angabe eines Locale wird eine formatierte Zeichenfolge im Standard-Locale und mit den Standardoptionen zurückgegeben.
const number = 3500;
console.log(new Intl.NumberFormat().format(number));
// '3,500' if in US English locale
Locales verwenden
Dieses Beispiel zeigt einige Unterschiede zwischen lokalisierten Zahlenformaten. Um das Format der Sprache zu erhalten, die in der Benutzeroberfläche Ihrer Anwendung verwendet wird, geben Sie diese Sprache (und gegebenenfalls weitere Sprachen als Fallback) über das Argument locales an:
const number = 123456.789;
// German uses comma as decimal separator and period for thousands
console.log(new Intl.NumberFormat("de-DE").format(number));
// 123.456,789
// Arabic in most Arabic speaking countries uses real Arabic digits
console.log(new Intl.NumberFormat("ar-EG").format(number));
// ١٢٣٤٥٦٫٧٨٩
// India uses thousands/lakh/crore separators
console.log(new Intl.NumberFormat("en-IN").format(number));
// 1,23,456.789
// the nu extension key requests a numbering system, e.g. Chinese decimal
console.log(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number));
// 一二三,四五六.七八九
// when requesting a language that may not be supported, such as
// Balinese, include a fallback language, in this case Indonesian
console.log(new Intl.NumberFormat(["ban", "id"]).format(number));
// 123.456,789
Optionen verwenden
Die Ergebnisse können mit dem Argument options angepasst werden:
const number = 123456.789;
// request a currency format
console.log(
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
number,
),
);
// 123.456,79 €
// the Japanese yen doesn't use a minor unit
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
number,
),
);
// ¥123,457
// limit to three significant digits
console.log(
new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
number,
),
);
// 1,23,000
// Formatting with units
console.log(
new Intl.NumberFormat("pt-PT", {
style: "unit",
unit: "kilometer-per-hour",
}).format(50),
);
// 50 km/h
console.log(
(16).toLocaleString("en-GB", {
style: "unit",
unit: "liter",
unitDisplay: "long",
}),
);
// 16 litres
Eine vollständige Liste der Optionen finden Sie auf der Seite zum Intl.NumberFormat()-Konstruktor.
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Internationalization API Specification> # numberformat-objects> |