Spec-Zone.ru › JavaScript

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() для получения более подробной информации.

Смотрите также

  • Intl.ListFormat
  • Intl.ListFormat.prototype.format()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API