Intl.Collator() 构造函数
Intl.Collator()
构造函数创建 Intl.Collator
对象。
试一试
语法
new Intl.Collator()
new Intl.Collator(locales)
new Intl.Collator(locales, options)
Intl.Collator()
Intl.Collator(locales)
Intl.Collator(locales, options)
注意:Intl.Collator()
可以使用或不使用 new
调用。两者都会创建一个新的 Intl.Collator
实例。
参数
locales
可选-
包含 BCP 47 语言标签的字符串或
Intl.Locale
实例,或此类区域设置标识符的数组。当传递undefined
或未支持任何指定的区域设置标识符时,将使用运行时的默认区域设置。有关locales
参数的一般形式和解释,请参阅Intl
主页上的参数描述。允许使用以下 Unicode 扩展键
这些键也可以使用
options
设置(如下所列)。当两者都设置时,options
属性优先。 options
可选-
包含以下属性的对象,按检索顺序排列(所有属性均为可选)
usage
-
比较是用于排序字符串列表还是模糊(对于拉丁文字母区分大小写和不区分大小写的)按键过滤字符串列表。可能的值为
localeMatcher
-
要使用的区域设置匹配算法。可能的值为
"lookup"
和"best fit"
;默认值为"best fit"
。有关此选项的信息,请参阅 区域设置识别和协商。 collation
-
某些区域设置的变体排序规则,例如
"emoji"
、"pinyin"
、"stroke"
等。有关支持的排序规则类型的列表,请参阅Intl.Locale.prototype.getCollations()
;默认值为"default"
。此选项也可以通过co
Unicode 扩展键设置;如果两者都提供,则此options
属性优先。 numeric
-
是否应使用数字排序规则,以便 "1" < "2" < "10"。可能的值为
true
和false
;默认值为false
。此选项也可以通过kn
Unicode 扩展键设置;如果两者都提供,则此options
属性优先。 caseFirst
-
大写或小写是否应先排序。可能的值为
"upper"
、"lower"
和"false"
(使用区域设置的默认值);默认值为"false"
。此选项也可以通过kf
Unicode 扩展键设置;如果两者都提供,则此options
属性优先。 sensitivity
-
字符串中的哪些差异会导致非零结果值。可能的值为
"base"
-
只有基本字母不同的字符串才会比较为不相等。例如:a ≠ b,a = á,a = A。
"accent"
-
只有基本字母或重音和其他变音符号不同的字符串才会比较为不相等。例如:a ≠ b,a ≠ á,a = A。
"case"
-
只有基本字母或大小写不同的字符串才会比较为不相等。例如:a ≠ b,a = á,a ≠ A。
"variant"
-
基本字母、重音和其他变音符号或大小写不同的字符串会比较为不相等。其他差异也可能会被考虑在内。例如:a ≠ b,a ≠ á,a ≠ A。
对于
"sort"
用法,默认值为"variant"
;根据规范,对于"search"
用法,它是依赖于区域设置的,但"search"
的核心功能是不区分重音和不区分大小写的过滤,因此"base"
最有意义(也许还有"case"
)。 ignorePunctuation
-
是否应忽略标点符号。可能的值为
true
和false
。对于泰语 (th
),默认值为true
;对于所有其他语言,默认值为false
。
异常
RangeError
-
如果
locales
或options
包含无效值,则抛出此异常。
示例
使用 Collator
以下示例演示了字符串出现在另一个字符串之前、之后或在同一级别时的不同潜在结果
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 值分别为负数和正数。
当用法为 "search"
时,调用方应只关注 compare()
的返回值是否为零或非零。不适合将用法为 "search"
的 Collator
用于排序。
规范
规范 |
---|
ECMAScript 国际化 API 规范 # sec-the-intl-collator-constructor |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。