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

js
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 dass formatRangeToParts() 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.

shared

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 als shared 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 oder endRange NaN oder eine nicht konvertierbare Zeichenkette ist.

TypeError

Wird ausgelöst, wenn entweder startRange oder endRange undefiniert ist.

Beispiele

Verwendung von formatRangeToParts()

Die Methode formatRange() gibt lokalisierte, opake Zeichenketten aus, die nicht direkt manipuliert werden können:

js
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:

js
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 GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
formatRangeToParts

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch