JS Intl.ListFormat

🌙
手机阅读
本文目录结构

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

const vehicles = ['Motorcycle', 'Bus', 'Car'];

const formatter = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' });
console.log(formatter.format(vehicles));
// expected output: "Motorcycle, Bus, and Car"

const formatter2 = new Intl.ListFormat('de', { style: 'short', type: 'disjunction' });
console.log(formatter2.format(vehicles));
// expected output: "Motorcycle, Bus oder Car"

const formatter3 = new Intl.ListFormat('en', { style: 'narrow', type: 'unit' });
console.log(formatter3.format(vehicles));
// expected output: "Motorcycle Bus Car"

语法

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

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

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

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

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 Status Comment
Intl.ListFormat proposal Stage 3

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了