Intl.ListFormat : méthode formatToParts()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2021.
La méthode formatToParts() des instances de Intl.ListFormat retourne un tableau d'objets représentant chaque partie de la chaîne formatée qui serait retournée par format(). Elle est utile pour construire des chaînes personnalisées à partir des éléments propres à la locale.
Exemple interactif
const vehicles = ["Motorcycle", "Bus", "Car"];
const formatterEn = new Intl.ListFormat("en", {
style: "long",
type: "conjunction",
});
const formatterFr = new Intl.ListFormat("fr", {
style: "long",
type: "conjunction",
});
const partValuesEn = formatterEn.formatToParts(vehicles).map((p) => p.value);
const partValuesFr = formatterFr.formatToParts(vehicles).map((p) => p.value);
console.log(partValuesEn);
// Résultat attendu : "["Motorcycle", ", ", "Bus", ", and ", "Car"]"
console.log(partValuesFr);
// Résultat attendu : "["Motorcycle", ", ", "Bus", " et ", "Car"]"
Syntaxe
formatToParts(list)
Paramètres
list-
Un objet itérable, tel qu'un tableau, contenant des chaînes de caractères. Si vous l'omettez, cela formate un tableau vide, ce qui peut prêter à confusion, il est donc conseillé de toujours passer explicitement une liste.
Valeur de retour
Un tableau (Array) d'objets contenant la liste formatée en fragments. Chaque objet possède deux propriétés, type et value, chacune contenant une chaîne de caractères. La concaténation des chaînes de caractères de value, dans l'ordre fourni, donnera la même chaîne de caractères que format(). La propriété type peut prendre l'une des valeurs suivantes :
Exemples
>Utiliser la méthode formatToParts()
const fruits = ["Apple", "Orange", "Pineapple"];
const maListeFormattee = new Intl.ListFormat("en-GB", {
style: "long",
type: "conjunction",
});
console.table(maListeFormattee.formatToParts(fruits));
// [
// { "type": "element", "value": "Apple" },
// { "type": "literal", "value": ", " },
// { "type": "element", "value": "Orange" },
// { "type": "literal", "value": " and " },
// { "type": "element", "value": "Pineapple" }
// ]
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # sec-Intl.ListFormat.prototype.formatToParts> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Intl.ListFormat - La méthode
Intl.ListFormat.prototype.format()