首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Intl.Collator

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

语法

代码语言:javascript
复制
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(见下文)。

kn是否应使用数字整理,例如“1”<“2”<“10”。可能的值是"true""false"。该选项可以通过options属性或通过 Unicode 扩展键设置; 如果两者都提供,则options属性优先。

kf大写还是小写应该先排序。可能的值"upper""lower""false"(使用区域设置的默认值)。该选项可以通过options属性或通过 Unicode 扩展键设置; 如果两者都提供,则options属性优先。

options

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

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

usage比较是用于排序还是用于搜索匹配的字符串。可能的值是"sort""search"; 默认是"sort"

sensitivity

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

  • "base":只有基数不同的字符串比较不等。例如:a ≠ ba = áa = A
  • "accent":只有在基本字母或重音和其他变音符号不同的字符串之间进行比较才是不相等的。例如:a ≠ ba ≠ áa = A
  • "case":只有基数不同或大小写不同的字符串比较不等。例如:a ≠ ba = áa ≠ A
  • "variant":基本字母,重音符号和其他变音符号不同的字符串,或案例比较不等的字符串。其他差异也可能被考虑在内。例如:a ≠ ba ≠ áa ≠ A

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

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

numeric是否应使用数字整理,例如“1”<“2”<“10”。可能的值是truefalse; 默认是false。该选项可以通过options属性或通过Unicode扩展键设置; 如果两者都提供,则options属性优先。实现不需要支持这个属性。

caseFirst大写还是小写应该先排序。可能的值是"upper",,"lower""false"(使用语言环境的默认值); 默认是"false"。该选项可以通过options属性或通过Unicode扩展键设置; 如果两者都提供的话options财产优先。实现不需要支持这个属性。

描述

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

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

代码语言:javascript
复制
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参数指定该语言(可能还有一些备用语言):

代码语言:javascript
复制
// 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参数进行自定义:

代码语言:javascript
复制
// 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)

?

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com