Intl.Collator

基线 广泛可用

此功能已得到良好确立,并且可在许多设备和浏览器版本上运行。它自以下时间起在浏览器中可用 2017 年 9 月.

Intl.Collator 对象支持语言敏感的字符串比较。

试一试

构造函数

Intl.Collator()

创建一个新的 Collator 对象。

静态方法

Intl.Collator.supportedLocalesOf()

返回一个数组,其中包含提供的区域设置中那些无需回退到运行时默认区域设置即可支持的区域设置。

实例属性

这些属性定义在 Intl.Collator.prototype 上,并由所有 Intl.Collator 实例共享。

Intl.Collator.prototype.constructor

创建实例对象的构造函数。对于 Intl.Collator 实例,初始值为 Intl.Collator 构造函数。

Intl.Collator.prototype[Symbol.toStringTag]

[Symbol.toStringTag] 属性的初始值为字符串 "Intl.Collator"。此属性用于 Object.prototype.toString()

实例方法

Intl.Collator.prototype.compare()

获取器函数,根据此 Intl.Collator 对象的排序顺序比较两个字符串。

Intl.Collator.prototype.resolvedOptions()

返回一个新对象,其属性反映在对象初始化期间计算出的区域设置和排序选项。

示例

使用 Collator

以下示例演示了字符串出现在另一个字符串之前、之后或同一级别时的不同潜在结果

js
console.log(new Intl.Collator().compare("a", "c")); // -1, or some other negative value
console.log(new Intl.Collator().compare("c", "a")); // 1, or some other positive value
console.log(new Intl.Collator().compare("a", "a")); // 0

请注意,上述代码中显示的结果可能因浏览器和浏览器版本而异。这是因为这些值是特定于实现的。也就是说,规范仅要求 before 和 after 值分别为负数和正数。

使用区域设置

Intl.Collator.prototype.compare() 提供的结果因语言而异。为了获得应用程序用户界面中使用的语言的排序顺序,请确保使用 locales 参数指定该语言(以及一些备用语言)

js
// in German, ä sorts with a
console.log(new Intl.Collator("de").compare("ä", "z"));
// -1, or some other negative value

// in Swedish, ä sorts after z
console.log(new Intl.Collator("sv").compare("ä", "z"));
// 1, or some other positive value

使用选项

Intl.Collator.prototype.compare() 提供的结果可以使用 options 参数进行自定义

js
// in German, ä has a as the base letter
console.log(new Intl.Collator("de", { sensitivity: "base" }).compare("ä", "a"));
// 0

// in Swedish, ä and a are separate base letters
console.log(new Intl.Collator("sv", { sensitivity: "base" }).compare("ä", "a"));
// 1, or some other positive value

规范

规范
ECMAScript 国际化 API 规范
# collator-objects

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅