Intl.ListFormat.prototype.formatToParts()
Базовая версия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с апреля 2021 года.
Метод formatToParts() экземпляров Intl.ListFormat возвращает массив объектов, представляющих каждую часть форматированной строки, которая была бы возвращена format(). Он полезен для построения пользовательских строк из токенов, зависящих от локали.
Попробуйте
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);
// Expected output: "["Motorcycle", ", ", "Bus", ", and ", "Car"]"
console.log(partValuesFr);
// Expected output: "["Motorcycle", ", ", "Bus", " et ", "Car"]"
Синтаксис
formatToParts(list)
Параметры
-
list - Итерируемый объект, например, Array, содержащий строки. Если его опустить, будет выполнено форматирование пустого массива, что может сбить с толку, поэтому рекомендуется всегда явно передавать список.
Возвращаемое значение
Массив Array объектов, содержащих отформатированный список по частям. Каждый объект имеет два свойства, type и value, каждое из которых содержит строку. Конкатенация строк value в заданном порядке даст ту же строку, что и format(). Значение type может быть одним из следующих:
-
literal - Любая строка, являющаяся частью шаблона форматирования; например
", ",", and"и т. д. -
element - Элемент списка, точно как он был предоставлен.
Примеры
Использование formatToParts()
const fruits = ["Apple", "Orange", "Pineapple"];
const myListFormat = new Intl.ListFormat("en-GB", {
style: "long",
type: "conjunction",
});
console.table(myListFormat.formatToParts(fruits));
// [
// { "type": "element", "value": "Apple" },
// { "type": "literal", "value": ", " },
// { "type": "element", "value": "Orange" },
// { "type": "literal", "value": " and " },
// { "type": "element", "value": "Pineapple" }
// ]
Спецификации
| Спецификация |
|---|
| Спецификация API интернационализации ECMAScript® 2027 # sec-Intl.ListFormat.prototype.formatToParts |
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
formatToParts |
72 |
79 |
78 |
60 |
14.1Доступно только в macOS Big Sur (11) и выше. |
72 |
79 |
51 |
14.5 |
11.0 |
72 |
14.5 |
1.0.3 |
1.8 |
12.0.0До версии 13.0.0 по умолчанию были доступны только данные локали дляen-US. См. конструктор ListFormat() для получения более подробной информации. |
Смотрите также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts