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
formatRangeToParts();
formatRangeToParts(debutIntervalle, finIntervalle);
Paramètres
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 à :
[
{ 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 commentcurrencyDisplay
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 commentunitDisplay
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 :
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 :
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
Intl.NumberFormat
Intl.NumberFormat.prototype.format
- La méthode analogue pour le formatage d'intervalle de dates :
Intl.DateTimeFormat.prototype.formatRangeToParts()