信息
您所需的主题如下所示。但此主题未包含在此库中。

Intl.Collator 对象 (JavaScript)

提供特定区域设置的字符串比较。

collatorObj = new Intl.Collator([locales][, options])

collatorObj

必需。 要向其分配 Collator 对象的变量名。

locales

可选。 包含一种或多种语言或区域设置标记的区域设置字符串数组。 如果包含多个区域设置字符串,请以降序优先级对它们进行排列,确保首个条目为首选区域位置。 如果省略此参数,则使用 JavaScript 运行时的默认区域设置。 有关更多信息,请参见备注部分。

options

可选。 包含一个或多个指定比较选项的特性的对象。 有关详细信息,请参见“备注”部分。

locales 参数必须符合 BCP 47 语言或“en-US”和“zh-Hans-CN”等区域设置标记。 标记可能包括语言、区域、国家/地区和变量。 有关语言列表,请参见IANA language subtag registry(IANA 语言子标签注册表)。 有关语言标记的示例,请参见 BCP 47 的 Appendix A(附录 A)。 对于 Collator,您可能需在区域设置字符串中包含 - u 扩展名以指定一个或多个以下 Unicode 扩展:

  • -co 指定不同的排序规则(特定于区域设置):“language-region-u-co-value”。

  • -kn 指定数字比较:"language-region-u-kn-true|false"。

  • –kf 指定是否首先对大写或小写字符排序:"language-region-u-kf-upper|lower|false")。 目前不支持此扩展。

要指定一个数值比较,你可以在区域设置字符串中设置 –kn 扩展,或在 options 参数中使用 numeric 属性。 如果正在使用 numeric 属性,–kn 值将不适用。

options 参数可能包括以下属性:

  • localeMatcher . 指定要使用的区域设置匹配算法。 可能的值为“lookup”和“best fit”。 默认值为“best fit”。

  • usage . 指定比较的目标为排序还是搜索。 可能的值为“sort”和“search”。 默认值为“sort”。

  • sensitivity . 指定排序程序的敏感度。 可能的值为“base”、“accent”、“case”和“variant”。 默认值为 undefined

  • ignorePunctuation . 指定比较时是否忽略标点符号。 可能的返回值为“true”和“false”。 默认值为 false

  • numeric . 指定是否使用数字排序。 可能的返回值为“true”和“false”。 默认值为 false

  • caseFirst . 当前不支持。

下表列出了 Collator 对象的属性。

Property

描述

compare

返回利用排序程序的排序次序比较两个字符串的函数。

构造函数

指定创建排序程序的函数。

Prototype — 原型

为排序程序返回对原型的引用。

下表列出了 Collator 对象的方法。

方法

描述

resolvedOptions

返回包含排序程序属性和值的对象。

下面的示例会创建一个 Collator 对象并执行比较。

var co = new Intl.Collator(["de-DE"]);
co.compare("a", "b"); // Returns -1

下面的示例使用 Collator 对象对数组排序。 此示例演示了特定于区域设置的差异。

var co1 = new Intl.Collator(["de-DE-u-co-phonebk"]);
var co2 = new Intl.Collator(["de-DE"]);
var co3 = new Intl.Collator(["en-US"]);

var arr = ["ä", "ad", "af", "a"];

if (console && console.log) {
    console.log(arr.sort(co1.compare));  // Returns a,ad,ä,af
    console.log(arr.sort(co2.compare));  // Returns a,ä,ad,af
    console.log(arr.sort(co3.compare));  // Returns a,ä,ad,af
}

下面的示例使用 Collator 对象搜索字符串并指定比较选项。

// String to search
var arr = ["ä", "ad", "af", "a"];
// String searched for
var s = "af";

var co = new Intl.Collator("de-DE", { usage: "search" });
var matches = arr.filter(function (i) {
    return co.compare(i, s) === 0;
});

if (console && console.log) {
    console.log(matches);  // Returns af
}

在 Internet Explorer 11 标准文档模式下支持此项。此外,也在应用商店应用(Windows 8.1 和 Windows Phone 8.1)中受支持。请参阅版本信息

在以下文档模式中不受支持:Quirks、Internet Explorer 6 标准模式、Internet Explorer 7 标准模式、Internet Explorer 8 标准模式、Internet Explorer 9 标准模式和 Internet Explorer 10 标准模式。在 Windows 8 中不受支持。

社区附加资源

显示:
© 2014 Microsoft