Intl.ListFormat

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

Intl.ListFormat 是一个语言相关的列表格式化构造器。

尝试一下

语法

new Intl.ListFormat([locales[, options]])

参数

locales

可选的.。符合 BCP 47 语言标注的字符串或字符串数组。locales 参数的一般形式和相关解释,请参阅 Intl page.

options

可选的。拥有下面所列属性中任意几个或全部的对象:

  • localeMatcher 指定要使用的本地匹配算法。可选的值有"lookup""best fit";默认情况下使用"best fit"。该参数的更多信息,请参考Intl page.
  • type 消息输出的格式。可选的值有用于替代基于“且”关系列表的"conjunction" (默认值,例如: A, B, and C),或者用于替代基于“或”关系列表的 "disjunction"(例如: A, B, or C),以及用于替代带计量单位的值列表的"unit" (例如: 5 pounds, 12 ounces).
  • style 被格式化消息的长度。可选值有:"long" (默认值,例如:A, B, and C)、"short" 或者 "narrow" (例如:A, B, C)。当style 的值为narrow 时,type 属性的值只能取值unit

描述

属性

Intl.ListFormat.prototype

允许增加一个属性到列表中的所有对象。

方法

Intl.ListFormat.supportedLocalesOf()

返回一个包含指定的被支持区域设置的数组,没有时使用运行环境默认区域设置

示例

使用 format

下面的例子展示了用英语语言怎么去创建一个列表格式化器。

js
const list = ["Motorcycle", "Bus", "Car"];

console.log(
  new Intl.ListFormat("en-GB", { style: "long", type: "conjunction" }).format(
    list,
  ),
);
// > Motorcycle, Bus and Car

console.log(
  new Intl.ListFormat("en-GB", { style: "short", type: "disjunction" }).format(
    list,
  ),
);
// > Motorcycle, Bus or Car

console.log(
  new Intl.ListFormat("en-GB", { style: "narrow", type: "unit" }).format(list),
);
// > Motorcycle Bus Car

使用 formatToParts

下面的例子展示了如何创建一个返回被格式化部分的列表格式化器。

js
const list = ["Motorcycle", "Bus", "Car"];
console.log(
  new Intl.ListFormat("en-GB", {
    style: "long",
    type: "conjunction",
  }).formatToParts(list),
);

// > [ { "type": "element", "value": "Motorcycle" }, { "type": "literal", "value": ", " }, { "type": "element", "value": "Bus" }, { "type": "literal", "value": ", and " }, { "type": "element", "value": "Car" } ];

规范

Specification
ECMAScript Internationalization API Specification
# listformat-objects

浏览器兼容性

BCD tables only load in the browser

参见