Intl.NumberFormat.prototype.formatRangeToParts()
Die Methode formatRangeToParts()
von Intl.NumberFormat
-Instanzen gibt ein Array
von Objekten zurück, die die länderspezifischen Tokens enthalten, aus denen es möglich ist, benutzerdefinierte Zeichenfolgen zu erstellen, die die länderspezifischen Teile bewahren. Dies ermöglicht es, länderspezifische, benutzerdefinierte Formatierungsbereiche von Zahlenzeichenfolgen bereitzustellen.
Syntax
formatRangeToParts(startRange, endRange)
Parameter
startRange
-
Eine
Number
,BigInt
oder Zeichenkette, die formatiert werden soll. Zeichenketten werden auf die gleiche Weise geparst wie in der Zahlenumwandlung, außer dassformatRangeToParts()
den genauen Wert verwendet, den die Zeichenkette darstellt, um einen Verlust an Genauigkeit bei der impliziten Umwandlung in eine Zahl zu vermeiden. endRange
-
Eine
Number
,BigInt
oder Zeichenkette, die formatiert werden soll.
Rückgabewert
Ein Array
von Objekten, die den formatierten Bereich in Teilen enthalten. Jedes Objekt hat drei Eigenschaften: type
, value
und source
, die jeweils eine Zeichenkette enthalten. Die Zeichenfolgenkonkatenation von value
in der angegebenen Reihenfolge führt zu derselben Zeichenkette wie formatRange()
. Der type
kann dieselben Werte wie formatToParts()
haben. Der source
kann einer der folgenden sein:
startRange
-
Das Token ist ein Teil der Startzahl.
endRange
-
Das Token ist ein Teil der Endzahl.
-
Das Token wird zwischen Start und Ende geteilt; zum Beispiel das Währungszeichen. Alle Literalen, die Teil des Bereichsmusters selbst sind, wie z. B. der
"–"
-Separator, werden ebenfalls alsshared
markiert.
Wenn die Start- und Endzahlen gleich sind, hat die Ausgabe dieselbe Liste von Tokens wie beim Aufruf von formatToParts()
auf der Startzahl, wobei alle Tokens als source: "shared"
markiert sind.
Ausnahmen
RangeError
-
Wird ausgelöst, wenn entweder
startRange
oderendRange
NaN
oder eine nicht konvertierbare Zeichenkette ist. TypeError
-
Wird ausgelöst, wenn entweder
startRange
oderendRange
undefiniert ist.
Beispiele
Verwendung von formatRangeToParts()
Die Methode formatRange()
gibt lokalisierte, opake Zeichenketten aus, die nicht direkt manipuliert werden können:
const startRange = 3500;
const endRange = 9500;
const formatter = new Intl.NumberFormat("de-DE", {
style: "currency",
currency: "EUR",
});
console.log(formatter.formatRange(startRange, endRange));
// "3.500,00–9.500,00 €"
In vielen Benutzeroberflächen möchten Sie jedoch das Format dieser Zeichenfolge anpassen oder sie mit anderen Texten verflechten. Die Methode formatRangeToParts()
liefert dieselben Informationen in Teilen:
console.log(formatter.formatRangeToParts(startRange, endRange));
// return value:
[
{ type: "integer", value: "3", source: "startRange" },
{ type: "group", value: ".", source: "startRange" },
{ type: "integer", value: "500", source: "startRange" },
{ type: "decimal", value: ",", source: "startRange" },
{ type: "fraction", value: "00", source: "startRange" },
{ type: "literal", value: "–", source: "shared" },
{ type: "integer", value: "9", source: "endRange" },
{ type: "group", value: ".", source: "endRange" },
{ type: "integer", value: "500", source: "endRange" },
{ type: "decimal", value: ",", source: "endRange" },
{ type: "fraction", value: "00", source: "endRange" },
{ type: "literal", value: " ", source: "shared" },
{ type: "currency", value: "€", source: "shared" },
];
Spezifikationen
Specification |
---|
ECMAScript® 2025 Internationalization API Specification # sec-intl.numberformat.prototype.formatrangetoparts |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
formatRangeToParts |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support