Intl.NumberFormat.prototype.formatRangeToParts()

La méthode Intl.Numberformat.prototype.formatRangeToParts() permet de formater des chaînes de caractères produites par des objets NumberFormat en tenant compte de la locale.

Syntaxe

js
formatRangeToParts();
formatRangeToParts(debutIntervalle, finIntervalle);

Paramètres

debutIntervalle

Une valeur numérique Number ou BigInt.

finIntervalle

Une valeur numérique Number ou BigInt.

Valeur de retour

Un tableau (Array) d'objets qui contiennent les différents fragments représentant l'intervalle numérique pour la locale.

Description

La méthode formatRangeToParts() est utile lorsqu'on souhaite construire des chaînes localisées sur mesure qui représentent des intervalles numériques. Elle renvoie un tableau (Array) dont les éléments sont des objets décrivant chaque fragment localisé qui permet de construire une chaîne de caractères sur mesure tout en préservant la localisation. La structure du tableau renvoyé par la méthode formatRangeToParts() ressemble à :

js
[
  { type: "integer", value: "3", source: "startRange" },
  { type: "literal", value: "-", source: "shared" },
  { type: "integer", value: "5", source: "endRange" },
  { type: "literal", value: " ", source: "shared" },
  { type: "currency", value: "€", source: "shared" },
];

Les types de valeur possibles pour les fragments sont :

"currency"

La chaîne de caractères représentant la devise, telle que les symboles "$" et "€" ou les noms "Dollar", "Euro" selon comment currencyDisplay est indiqué.

"decimal"

La chaîne de caractères représentant le séparateur décimal (par exemple ".").

"fraction"

La chaîne de caractères représentant la partie fractionnaire.

"group"

La chaîne de caractères pour la séparation entre les groupes (par exemple ",").

"infinity"

La chaîne de caractères pour représenter l'infini (Infinity) (par exemple "∞").

"integer"

La chaîne de caractères représentant la partie entière.

"literal"

Toute chaîne de caractères ou blanc utilisé pour le formatage de la valeur numérique.

"minusSign"

La chaîne de caractères représentant le signe moins (par exemple "-").

"nan"

La chaîne de caractères représentant la valeur NaN ("NaN").

"plusSign"

La chaîne de caractères représentant le signe plus (par exemple "+").

"percentSign"

La chaîne de caractères représentant le signe de pourcentage (par exemple "%").

"unit"

La chaîne de caractères représentant l'unité, telle que "l" ou "litres" selon comment unitDisplay est indiqué.

Exemples

Comparer formatRange() et formatRangeToParts()

NumberFormat.formatRange() produit des chaînes de caractères localisées qui ne peuvent pas être manipulées directement :

js
const debutIntervalle = 3500;
const finIntervalle = 9500;

const formateur = new Intl.NumberFormat("de-DE", {
  style: "currency",
  currency: "EUR",
});

formateur.formatRange(debutIntervalle, finIntervalle);
// "3.500,00–9.500,00 €"

Toutefois, s'il est nécessaire de personnaliser la chaîne de caractères finale en utilisant les fragments localisés, on peut utiliser la méthode formatRangeToParts() qui fournit les fragments formatés de la chaîne de caractères et qui tiennent compte de la locale :

js
formateur.formatRangeToParts(debutIntervalle, finIntervalle)

// Valeur de retour :
[
  { 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" },
]

Spécifications

Specification
ECMAScript Internationalization API Specification
# sec-intl.numberformat.prototype.formatrangetoparts

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi