在线文档教程

Intl.Collator

Intl.Collator

Intl.Collator对象是 collat​​ors 的构造函数,用于启用对语言敏感的字符串比较的对象。

语法

new Intl.Collator([locales[, options]]) Intl.Collator.call(this[, locales[, options]])

参数

locales

可选的。一个带有 BCP 47 语言标签的字符串或这种字符串的数组。有关参数的一般形式和解释locales,请参阅 Intl 页面。以下 Unicode 扩展键是允许的:

co某些语言环境的变体排序规则。可能的值包括:"big5han""dict""direct""ducet""gb2312""phonebk""phonetic""pinyin""reformed""searchjl""stroke""trad""unihan"。该"standard""search"值将被忽略; 他们被options财产取代usage(见下文)。

可选的。具有部分或全部以下属性的对象:

localeMatcher要使用的语言环境匹配算法。可能的值是"lookup""best fit"; 默认是"best fit"。有关此选项的信息,请参阅 Intl 页面。

字符串中的哪些差异应导致非零结果值。可能的值是:

  • "base":只有基数不同的字符串比较不等。例如:a ≠ ba = áa = A

默认值是"variant"用于使用"sort"; 它的使用依赖于语言环境"search"

ignorePunctuation是否应该忽略标点符号。可能的值是truefalse; 默认是false

描述

Intl.Collator对象具有以下属性和方法:

属性

Intl.Collator.prototype允许为所有对象添加属性。

方法

Intl.Collator.supportedLocalesOf()返回一个数组,其中包含所提供的语言环境的支持,而不必回退到运行时的默认语言环境。

Collator 实例

属性

Collator 实例从其原型继承了以下属性:

Intl.Collator.prototype.compare Getter; 返回一个函数,该函数根据此Intl.Collator对象的排序顺序比较两个字符串。Intl.Collator.prototype.constructorIntl.Collator的引用。

方法

Collator 实例从它们的原型继承了以下方法:

Intl.Collator.prototype.resolvedOptions()返回一个新对象,其中包含反映在对象初始化期间计算出的语言环境和排序规则选项的属性。

示例

使用Collator

以下示例演示了字符串在与另一个字符串之前,之后或与其位于同一级别的不同潜在结果:

console.log(new Intl.Collator().compare('a', 'c') // → a negative value console.log(new Intl.Collator().compare('c', 'a') // → a positive value console.log(new Intl.Collator().compare('a', 'a') // → 0

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

使用locales

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

// in German, ä sorts with a console.log(new Intl.Collator('de').compare('ä', 'z') // → a negative value // in Swedish, ä sorts after z console.log(new Intl.Collator('sv').compare('ä', 'z') // → a positive value

使用 options

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

// 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') // → a positive value

规范

SpecificationStatusComment
ECMAScript Internationalization API 1.0 (ECMA-402)The definition of 'Intl.Collator' in that specification.StandardInitial definition.
ECMAScript Internationalization API 2.0 (ECMA-402)The definition of 'Intl.Collator' in that specification.Standard
ECMAScript Internationalization API 4.0 (ECMA-402)The definition of 'Intl.Collator' in that specification.Draft

浏览器兼容性

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support24(Yes)29 (29)111510
caseFirst(Yes)?55 (55)?(Yes)?

FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic supportNo support26(Yes)56.0 (56)No supportNo support10
caseFirst(Yes)(Yes)?56.0 (56)?(Yes)?