Intl.Collator
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Intl.Collator
对象用于语言敏感的字符串比较。
尝试一下
构造函数
Intl.Collator()
-
创建一个新的
Collator
对象。
静态方法
Intl.Collator.supportedLocalesOf()
-
返回一个数字,其中包含提供的区域(locale)中被运行时所支持的,而不必回退到运行时的默认区域。
实例方法
Intl.Collator.prototype.compare
-
getter 函数,根据
Intl.Collator
对象的排序顺序来比较两个字符串。 Intl.Collator.prototype.resolvedOptions()
-
返回一个新对象,其属性反映了在对象初始化期间计算所得的区域和一系列选项。
示例
使用 Collator
以下示例演示了一个字符串在另一个字符串之前、之后或与另一个字符串处于同一级别时可能出现的不同结果:
js
console.log(new Intl.Collator().compare("a", "c")); // -1,或一些其他的负值
console.log(new Intl.Collator().compare("c", "a")); // 1,或一些其他的正值
console.log(new Intl.Collator().compare("a", "a")); // 0
请注意,上面代码中显示的结果可能因浏览器和浏览器版本而异。这是因为这些值是特定于实现的。即,规范仅要求在比较的字符串之前和之后分别对应负值和正值。
使用 locales
Collator.prototype.compare()
提供的结果在不同语言之间有所不同。为了获得用于你的应用程序的用户界面的语言格式,请确保使用 locales
参数指定了语言(可能还有一些回退语言):
js
// 德语中,ä 使用 a 的排序
console.log(new Intl.Collator("de").compare("ä", "z"));
// -1,或一些其他的负值
// 在瑞典语中,ä 排在 z 之后
console.log(new Intl.Collator("sv").compare("ä", "z"));
// 1,或一些其他的正值
使用 options
Collator.prototype.compare()
提供的结果可以使用 options 参数自定义:
js
// 德语中,ä 使用 a 作为基本字母
console.log(new Intl.Collator("de", { sensitivity: "base" }).compare("ä", "a"));
// 0
// 瑞典语中,ä 和 a 是单独的基本字母
console.log(new Intl.Collator("sv", { sensitivity: "base" }).compare("ä", "a"));
// 1,或一些其他的正值
规范
Specification |
---|
ECMAScript Internationalization API Specification # collator-objects |
浏览器兼容性
BCD tables only load in the browser