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
178
179
|
---
title: Intl.Collator
slug: Web/JavaScript/Reference/Global_Objects/Intl/Collator
tags:
- Collator
- Internationalization
- JavaScript
translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator
---
<div>{{JSRef}}</div>
<p>Das <strong><code>Intl.Collator</code></strong> Objekt ist ein Konstruktor für Überprüfer, Objekte die Sprachsensitive Stringvergleiche unterstützen.</p>
<div>{{EmbedInteractiveExample("pages/js/intl-collator.html")}}</div>
<h2 id="Syntax">Syntax</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="Parameter">Parameter</h3>
<dl>
<dt><code>locales</code></dt>
<dd>
<p>Optional. Ein String mit einem BCP 47 Sprachtag, oder einem Array von solchen Strings. Für die generelle Interpretation für das <code>locales</code> Argument, siehe auf der {{jsxref("Global_Objects/Intl", "Intl Seite", "#Gebietsidentifikation_und_-verhandlung", 1)}} nach. Die folgenden Unicode-Erweiterunsschlüssel sind erlaubt:</p>
<dl>
<dt><code>co</code></dt>
<dd>Abweichender Vergleich für einige Gebiete. Folgende Werte sind möglich: <code>"big5han"</code>, <code>"dict"</code>, <code>"direct"</code>, <code>"ducet"</code>, <code>"gb2312"</code>, <code>"phonebk"</code>, <code>"phonetic"</code>, <code>"pinyin"</code>, <code>"reformed"</code>, <code>"searchjl"</code>, <code>"stroke"</code>, <code>"trad"</code>, <code>"unihan"</code>. Die Werte <code>"standard"</code> und <code>"search"</code> werden ignoriert. Sie werden durch die EIgenschaft <code>usage</code> des <code>options</code> Objekt ersetzt (siehe unten).</dd>
<dt><code>kn</code></dt>
<dd>Wenn numerische Vergleiche benutzt werden soll, so wie "1" < "2" < "10". Mögliche Werte sind <code>"true"</code> und <code>"false"</code>. Diese Option kann über eine <code>options</code> Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die <code>options</code> Eigenschaft Vorrang.</dd>
<dt><code>kf</code></dt>
<dd>Wenn Kleinschreibung oder Großschreibung zuerst in der Reihenfolge kommt. Mögliche Wert sind <code>"upper"</code>, <code>"lower"</code>, or <code>"false"</code> (benutzt den Gebietsstandard). Diese Option kann über eine <code>options</code> Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die <code>options</code> Eigenschaft Vorrang.</dd>
</dl>
</dd>
<dt><code>options</code></dt>
<dd>
<p>Optional. Ein Objekt einigen oder allen der folgenden Eigenschafte:</p>
<dl>
<dt><code>localeMatcher</code></dt>
<dd>Der Algorithmus zur Ermittlung des Gebiets. Mögliche Werte sind <code>"lookup"</code> and <code>"best fit"</code>; Der Standard ist <code>"best fit"</code>. Für Informationen über diese Option siehe auf der {{jsxref("Global_Objects/Intl", "Intl Seite", "#Gebietsauswahl", 1)}} nach.</dd>
<dt><code>usage</code></dt>
<dd>Ob der Vergleich für das Sortieren oder Suchen von Strings ist. Mögliche Werte sind <code>"sort"</code> and <code>"search"</code>; der Standard ist <code>"sort"</code>.</dd>
<dt><code>sensitivity</code></dt>
<dd>
<p>Welche Unterschiede in Strings sollen zu Resultaten ungleich 0 führen. Mögliche Werte:</p>
<ul>
<li><code>"base"</code>: Nur Strings die im Basisbuchstaben ungleiche sind. Beispiele: <code>a ≠ b</code>, <code>a = á</code>, <code>a = A</code>.</li>
<li><code>"accent"</code>: Nur Strings die im Basisbuchstaben oder Akzent und anderen diakritisch Zeichen ungleich sind. Beispiele: <code>a ≠ b</code>, <code>a ≠ á</code>, <code>a = A</code>.</li>
<li><code>"case"</code>: Nur Strings die im Basisbuchstaben oder der Größe ungleich sind. Beispiele: <code>a ≠ b</code>, <code>a = á</code>, <code>a ≠ A</code>.</li>
<li><code>"variant"</code>: Strings, die im Basisbuchstaben, im Akzent und anderen diakritischen Zeichen oder in der Großschreibung ungleich sind. Andere Unterschiede können in den Vergleich eingehen. Beispiele: <code>a ≠ b</code>, <code>a ≠ á</code>, <code>a ≠ A</code>.</li>
</ul>
<p>Der Standardwert ist <code>"variant"</code> wenn <code>usage</code> auf <code>"sort"</code> steht. Für <code>usage</code> gleich <code>"search"</code> ist es Gebietsabhängig.</p>
</dd>
<dt><code>ignorePunctuation</code></dt>
<dd>Wenn Interpunktion ignoriert werden soll. Mögliche Werte sind <code>true</code> and <code>false</code>; Der Standard ist <code>false</code>.</dd>
<dt><code>numeric</code></dt>
<dd>Wenn numerische Vergleiche benutzt werden soll, so wie "1" < "2" < "10". Mögliche Werte sind <code>"true"</code> und <code>"false"</code>. Der Standard ist <code>false</code>. Diese Option kann über eine <code>options</code> Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die <code>options</code> Eigenschaft Vorrang. Implementierungen müssen diese Eigenschaft nicht unterstützen.</dd>
<dt><code>caseFirst</code></dt>
<dd>Wenn Kleinschreibung oder Großschreibung zuerst in der Reihenfolge kommt. Mögliche Wert sind <code>"upper"</code>, <code>"lower"</code>, or <code>"false"</code> (benutzt den Gebietsstandard). Der Standard ist <code>"false"</code>. Diese Option kann über eine <code>options</code> Eigenschaft oder über einen Unicode-Erweiterungsschlüssel gesetzt werden. Wenn beide gesetzt sind, hat die <code>options</code> Eigenschaft Vorrang. Implementierungen müssen diese Eigenschaft nicht unterstützen.</dd>
</dl>
</dd>
</dl>
<h2 id="Beschreibung">Beschreibung</h2>
<p>Das <code>Intl.Collator</code> Objekt hat die folgenden Eigenschaften und Methoden:</p>
<h3 id="Eigenschaften">Eigenschaften</h3>
<dl>
<dt>{{jsxref("Collator.prototype", "Intl.Collator.prototype")}}</dt>
<dd>Erlaubt das hinzufügen von Eigenschaften zu allen Objekten.</dd>
</dl>
<h3 id="Methoden">Methoden</h3>
<dl>
<dt>{{jsxref("Collator.supportedLocalesOf", "Intl.Collator.supportedLocalesOf()")}}</dt>
<dd>Gibt ein Array von Gebieten zurück, die unterstützt werden, ohne dass die Backuplösung des Umgebungsstandards eingesetzt wird.</dd>
</dl>
<h2 id="Collator_Instanzen"><code>Collator</code> Instanzen</h2>
<h3 id="Eigenschaften_2">Eigenschaften</h3>
<p><code>Collator</code> Instanzen erben die folgenden Eigenschaften von ihrem Prototyp:</p>
<div>{{page('de/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Eigenschaften')}}</div>
<h3 id="Methoden_2">Methoden</h3>
<p><code>Collator</code> Instanzen erben die folgenden Methoden von ihrem Prototyp:</p>
<div>{{page('de/docs/Web/JavaScript/Reference/Global_Objects/Collator/prototype', 'Methoden')}}</div>
<h2 id="Beispiele">Beispiele</h2>
<h3 id="Einsatz_von_Collator">Einsatz von <code>Collator</code></h3>
<p>Das folgende Beispiel demonstriert die potentiell Unterschiedlichen Ergebnisse für ein String vor, nach, oder an der selben Stelle in ein andere String in der Sortierreihenfolge:</p>
<pre class="brush: js">console.log(new Intl.Collator().compare('a', 'c')); // → ein negativer Wert
console.log(new Intl.Collator().compare('c', 'a')); // → ein positiver Wert
console.log(new Intl.Collator().compare('a', 'a')); // → 0
</pre>
<p>Zu beachten ist, dass sich das im Quelltext gezeigte Ergebnis zwischen Browsern und Browserversionen unterscheiden kann. Das ist, weil die Werte implementierungsabhängig sind. Die Spezifikation definiert nur, dass die Werte vor und nach gleich negativ und positiv sein müssen.</p>
<h3 id="Einsatz_von_locales">Einsatz von <code>locales</code></h3>
<p>Das Ergebnis von {{jsxref("Collator.prototype.compare()")}} variiert zwischen Sprachen. Um die Sortierreihenfolge eine Sprache im Benutzerinterface eine Applikation zu bekommen, sollte man die Sprache mit dem <code>locales</code> Argument spezifizieren (und einige Backupsprachen):</p>
<pre class="brush: js">// 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
</pre>
<h3 id="Einsatz_von_options">Einsatz von <code>options</code></h3>
<p>Das Ergebnis von {{jsxref("Collator.prototype.compare()")}} kann durch den Einsatz des <code>options</code> Argument verändert werden:</p>
<pre class="brush: js">// 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
</pre>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Kommentar</th>
</tr>
<tr>
<td>{{SpecName('ES Int 1.0', '#sec-10.1', 'Intl.Collator')}}</td>
<td>{{Spec2('ES Int 1.0')}}</td>
<td>Initiale 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="Browserkompatibilität">Browserkompatibilität</h2>
<div>
<p>{{Compat("javascript.builtins.Intl.Collator")}}</p>
</div>
<h2 id="Siehe_auch">Siehe auch</h2>
<div>{{page('/de/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'Siehe_auch')}}</div>
|