Intl.Collator
Intl.Collator
Intl.Collator
对象是 collators 的构造函数,用于启用对语言敏感的字符串比较的对象。
语法
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 ≠ b
,a = á
,a = A
。
默认值是"variant"
用于使用"sort"
; 它的使用依赖于语言环境"search"
。
ignorePunctuation
是否应该忽略标点符号。可能的值是true
和false
; 默认是false
。
描述
该Intl.Collator
对象具有以下属性和方法:
属性
Intl.Collator.prototype
允许为所有对象添加属性。
方法
Intl.Collator.supportedLocalesOf()
返回一个数组,其中包含所提供的语言环境的支持,而不必回退到运行时的默认语言环境。
Collator 实例
属性
Collator
实例从其原型继承了以下属性:
Intl.Collator.prototype.compare
Getter; 返回一个函数,该函数根据此Intl.Collator
对象的排序顺序比较两个字符串。Intl.Collator.prototype.constructor
对Intl.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
规范
Specification | Status | Comment |
---|---|---|
ECMAScript Internationalization API 1.0 (ECMA-402)The definition of 'Intl.Collator' in that specification. | Standard | Initial 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 | |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 24 | (Yes) | 29 (29) | 11 | 15 | 10 |
caseFirst | (Yes) | ? | 55 (55) | ? | (Yes) | ? |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | No support | 26 | (Yes) | 56.0 (56) | No support | No support | 10 |
caseFirst | (Yes) | (Yes) | ? | 56.0 (56) | ? | (Yes) | ? |