Intl.NumberFormat.prototype.formatRangeToParts()
Baseline
2023
Newly available
Depuis August 2023, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
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 commentcurrencyDisplayest 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 commentunitDisplayest 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® 2026 Internationalization API Specification> # sec-intl.numberformat.prototype.formatrangetoparts> |
Compatibilité des navigateurs
Chargement…
Voir aussi
Intl.NumberFormatIntl.NumberFormat.prototype.format- La méthode analogue pour le formatage d'intervalle de dates :
Intl.DateTimeFormat.prototype.formatRangeToParts()