aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html
blob: 44f6ab11f982a9c1bbdcf8255fe169b65d7e48e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
---
title: Intl.Collator
slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator
translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator
---
<div>{{JSRef}}</div>

<p><strong><code>Intl.Collator </code></strong><code>是用于语言敏感字符串比较的 collators构造函数。</code></p>

<div>{{EmbedInteractiveExample("pages/js/intl-collator.html")}}</div>



<h2 id="语法">语法</h2>

<pre class="syntaxbox"><code>new Intl.Collator([<var>locales</var>[, <var>options</var>]])
Intl.Collator.call(<var>this</var>[, <var>locales</var>[, <var>options</var>]])</code></pre>

<h3 id="参数">参数</h3>

<dl>
 <dt><code>locales</code></dt>
 <dd>
 <p>可选. 缩写语言代码 (BCP 47 language tag, 例如: cmn-Hans-CN) 的字符串或者这些字符串组成的数组. 关于参数 locales 的一般形式和解释请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}. 下面的这些 Unicode 扩展键也是被允许的:</p>

 <dl>
  <dt><code>co</code></dt>
  <dd>某些区域设置的变体归类。 可能的值包括:“big5han”,“dict”,“direct”,“ducet”,“gb2312”,“phonebk”,“phonetic”,“pinyin”,“reformed”,“searchjl”,“stroke” “,”unihan“。值“<code>standard</code>” 和 “<code>search</code>” 被忽略; 它们被 options 属性用法替换(详见下文)。</dd>
  <dt><code>kn</code></dt>
  <dd>是否应使用数字对照,使得 “1”&lt;“2”&lt;“10”。 可能的值为 “true” 和 “false”。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。</dd>
  <dt><code>kf</code></dt>
  <dd><code>首先排序大写或者小写。可能的值为 “upper”,“lower” 或 “false”(使用区域设置的默认值)。 </code> 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。</dd>
 </dl>
 </dd>
 <dt><code>options</code></dt>
 <dd>
 <p>可选. 包含一些或所有的下面属性的对象:</p>

 <dl>
  <dt><code>localeMatcher</code></dt>
  <dd>使用的 local 的匹配算法. 可能的值有 "lookup" 和 "best fit"; 默认值是 <code>"best fit"</code>. 有关此选项的信息, 请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.</dd>
  <dt><code>usage</code></dt>
  <dd>比较是用于排序还是用于搜索匹配的字符串。 可能的值为 “sort” 和 “search”; 默认为 “sort”。</dd>
  <dt><code>sensitivity</code></dt>
  <dd>
  <p>字符串中的哪些差异应导致结果值为非零(non-zero)。 可能的值有:</p>

  <ul>
   <li><code>"base"</code>: 只有字母不同的字母比较不相等。例子: <code>a ≠ b</code>, <code>a = á</code>, <code>a = A。</code></li>
   <li><code>"accent"</code>: 只有不同的基本字母或重音符号和其他变音符号的字符串比较为不相等。 例如: <code>a ≠ b</code>, <code>a ≠ á</code>, <code>a = A。</code></li>
   <li><code>"case"</code>: 只有不同的基本字母或大小写的字符串比较不相等。 Examples: <code>a ≠ b</code>, <code>a = á</code>, <code>a ≠ A。</code></li>
   <li><code>"variant"</code>: 字符串的字母,口音和其他变音符号、或不同大小写比较不相等。 也可以考虑其他差异。例如: <code>a ≠ b</code>, <code>a ≠ á</code>, <code>a ≠ A</code>.</li>
  </ul>

  <p><code>"variant" 的默认值使用 </code><code>"sort"</code>; 它的 locale 依赖于使用 <code>"search"</code>.</p>
  </dd>
  <dt><code>ignore­Punctua­tion</code></dt>
  <dd>是否应忽略标点。 可能的值为 true 和 false; 默认值为 false。</dd>
  <dt><code>numeric</code></dt>
  <dd>是否应使用数字对照,使得 “1”&lt;“2”&lt;“10”。 可能的值为 “true” 和 “false”。默认值为 “false” 。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。实现不需要支持此属性。</dd>
  <dt><code>caseFirst</code></dt>
  <dd><code>首先排序大写或者小写。可能的值为 “upper”,“lower” 或 “false”(使用区域设置的默认值)。 </code> 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。实现不需要支持此属性。</dd>
 </dl>
 </dd>
</dl>

<h2 id="描述">描述</h2>

<p><code>Intl.Collator</code> 类有一下属性和方法</p>

<h3 id="属性">属性</h3>

<dl>
 <dt>{{jsxref("Collator.prototype", "Intl.Collator.prototype")}}</dt>
 <dd>允许向所有对象添加属性。</dd>
</dl>

<h3 id="方法">方法</h3>

<dl>
 <dt>{{jsxref("Collator.supportedLocalesOf", "Intl.Collator.supportedLocalesOf()")}}</dt>
 <dd>返回包含所支持的所提供语言环境的数组的数组,而不必回退到运行时的默认语言环境。</dd>
</dl>

<h2 id="Collator_实例"><code>Collator 实例</code></h2>

<h3 id="属性_2">属性</h3>

<p><code>Collator 实例从其原型继承以下属性:</code></p>

<div>{{page('en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Properties')}}</div>

<h3 id="方法_2">方法</h3>

<h3 id="Collator_实例从其原型继承以下方法:">Collator 实例从其原型继承以下方法:</h3>

<div>{{page('en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Methods')}}</div>

<h2 id="例子">例子</h2>

<h3 id="基本用法">基本用法</h3>

<p>以下示例演示在另一个之前,之后或同级别发生的字符串的不同潜在结果:</p>

<pre class="brush: js">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
</pre>

<p>请注意,上述代码中显示的结果可能会因浏览器和浏览器版本而异。 这是因为值是实现特定的。 也就是说,规范仅需要前后值为负和正。</p>

<h3 id="使用_locales">使用 <code>locales</code></h3>

<p>{{jsxref("Collator.prototype.compare()")}} 提供的结果在不同语言之间有所不同。为了获得用于您的应用程序的用户界面的语言格式,请确保设定了语言(可能还有一些回退语言)参数:</p>

<pre class="brush: js">// 德语中, ä 使用 a 的排序
console.log(new Intl.Collator('de').compare('ä', 'z'));
// → 一个负值

// 瑞典语中, ä 在 z 的后面
console.log(new Intl.Collator('sv').compare('ä', 'z'));
// → 一个正值
</pre>

<h3 id="使用_options">使用 <code>options</code></h3>

<p>{{jsxref("Collator.prototype.compare()")}} 提供的结果可以使用 options 参数自定义:</p>

<pre class="brush: js">// 德语中, ä 使用 a 作为基本字母
console.log(new Intl.Collator('de', { sensitivity: 'base' }).compare('ä', 'a'));
// → 0

// 瑞典语中, ä 和 a 是单独的基本字母
console.log(new Intl.Collator('sv', { sensitivity: 'base' }).compare('ä', 'a'));
// → 一个正值
</pre>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('ES Int 1.0', '#sec-10.1', 'Intl.Collator')}}</td>
   <td>{{Spec2('ES Int 1.0')}}</td>
   <td>Initial definition.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES Int 2.0', '#sec-10.1', 'Intl.Collator')}}</td>
   <td>{{Spec2('ES Int 2.0')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('ES Int Draft', '#collator-objects', 'Intl.Collator')}}</td>
   <td>{{Spec2('ES Int Draft')}}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>

<div>
<div>


<p>{{Compat("javascript.builtins.Intl.Collator")}}</p>
</div>
</div>

<h2 id="参见">参见</h2>

<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}</div>