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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
|
---
title: String.prototype.split()
slug: Web/JavaScript/Reference/Global_Objects/String/split
translation_of: Web/JavaScript/Reference/Global_Objects/String/split
---
<div>{{JSRef}}</div>
<p>Die <strong><code>split()</code></strong> Methode teilt ein {{jsxref("String")}} Objekt in ein Array von Strings auf, indem der String in Teilstrings zerteilt wird, wobei ein angegebenes Trennzeichen verwendet wird, um zu bestimmen, wo die Aufteilung erfolgen soll.</p>
<p>{{EmbedInteractiveExample("pages/js/string-split.html")}}</p>
<h2 id="Summary" name="Summary">Syntax</h2>
<pre class="syntaxbox"><code><var>str</var>.split([<var>separator</var>[, <var>limit</var>]])</code></pre>
<div class="blockIndicator warning">
<p>Achtung: Wenn leerer ein String ("") als Trennzeichen verwendet wird, wird der String <strong>nicht</strong> zwischen jedem <em>vom Benutzer wahrgenommenen Zeichen</em> (<a href="https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries">Graphem-Cluster</a>) oder zwischen jedem Unicode-Zeichen (Codepoint) aufgeteilt, sondern zwischen jeder UTF-16-Codeeinheit. Dadurch werden <a href="http://unicode.org/faq/utf_bom.html#utf16-2">Ersatzpaare</a> (surrogate pairs) zerstört. Siehe auch <a href="https://stackoverflow.com/a/34717402">How do you get a string to a character array in JavaScript?</a> auf Stack Overflow.</p>
</div>
<h3 id="Parameters" name="Parameters">Parameter</h3>
<dl>
<dt><code>separator</code> {{optional_inline}}</dt>
<dd>Ein String, der die Punkte angibt, an denen jede Aufteilung erfolgen soll. <code>separator</code> wird als Zeichenfolge oder als {{jsxref("Global_Objects/RegExp", "regulärer Ausdruck", "", 1)}} behandelt. Wenn ein Nur-Text <code>separator</code> mehr als ein Zeichen enthält, muss der gesamte String gefunden werden, damit eine Trennung erfolgt. Wenn <code>separator</code> nicht angegeben wird oder in <code>str</code> nicht vorkommt, enthält das zurückgegebene Array ein Element, das den gesamten String enthält. Wenn <code>separator</code> ein leerer String ist, wird jedes Zeichen von <code>str</code> in ein Array-Element umgewandelt.</dd>
<dt><code>limit</code> {{optional_inline}}</dt>
<dd>Ganzzahl, die ein Limit für die Anzahl der zu findenden Splits angibt. Wenn dieser Parameter angegeben wird, teilt die <code>split()</code> Methode die Zeichenfolge bei jedem Vorkommen des angegebenen <code>separator</code> auf, stoppt jedoch, nachdem die Anzahl von <code>limit</code> erreicht wurde. Es können immer noch weniger Einträge als <code>limit</code> enthalten sein, wenn das Ende des Strings erreicht wurde, bevor das angegebene Limit erreicht wird. Der übrig gebliebene Text wird im neuen Array nicht enthalten sein.</dd>
</dl>
<h3 id="Rückgabewert">Rückgabewert</h3>
<p>Ein {{jsxref("Array")}} mit Strings, welcher an jedem Punkt aufgeteilt wurde, an dem das Trennzeichen in der angegebenen Zeichenfolge aufgetreten ist.</p>
<h2 id="Description" name="Description">Beschreibung</h2>
<p>Wenn gefunden, wird <code>separator</code> aus dem String entfernt und die Teilstrings werden in einem Array zurückgegeben. Wenn <code>separator</code> nicht gefunden oder weggelassen wird, enthält das Array ein Element, das aus dem gesamten String besteht. Wenn <code>separator</code> ein leerer String ist, wird <code>str</code> in ein Array aus Zeichen umgewandelt. Wenn <code>separator</code> am Anfang, Ende oder Anfang und Ende eines Strings gefunden wird, beginnt, endet oder beginnt und endet das Array mit einem leeren String. Besteht ein String daher nur aus einem einzigen Vorkommnis von <code>separator</code> besteht, besteht das Array also aus zwei leeren Strings.</p>
<p>Wenn <code>separator</code> ein regulärer Ausdruck ist, der runde Klammern enthält, werden die Ergebnisse (einschließlich etwaiger undefinierter Ergebnisse) der Klammern bei jeder Übereinstimmung von <code>separator</code> in das ausgegebene Array eingefügt.</p>
<div class="blockIndicator note">
<p><strong>Hinweis:</strong> Wenn <code>separator</code> ein Array ist, wird das Array in einen String umgewandelt und als Trennzeichen verwendet.</p>
</div>
<div class="blockIndicator note">
<p><strong>Hinweis:</strong> Wenn der String leer ist, gibt <code>split()</code> ein Array zurück, das einen leeren String anstelle eines leeren Arrays enthält. Wenn sowohl der String als auch das Trennzeichen leere Zeichenfolgen sind, wird ein leeres Array zurückgegeben.</p>
</div>
<h2 id="Examples" name="Examples">Beispiele</h2>
<h3 id="Example:_Using_split" name="Example:_Using_split">Verwendung von <code>split()</code></h3>
<p>Im folgenden Beispiel wird eine Funktion definiert, die einen String mithilfe des angegebenen Trennzeichens in ein Array aus Strings aufteilt. Nach dem Aufteilen des Strings protokolliert die Funktion Meldungen, die den ursprüngliche String angeben (vor der Aufteilung), das verwendete Trennzeichen, die Anzahl der Elemente im Array und die einzelnen Arrayelemente.</p>
<pre class="brush: js">function splitString(stringToSplit, separator) {
var arrayOfStrings = stringToSplit.split(separator);
console.log('The original string is: "' + stringToSplit + '"');
console.log('The separator is: "' + separator + '"');
console.log('The array has ' + arrayOfStrings.length + ' elements: ' + arrayOfStrings.join(' / '));
}
var tempestString = 'Oh brave new world that has such people in it.';
var monthString = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec';
var space = ' ';
var comma = ',';
splitString(tempestString, space);
splitString(tempestString);
splitString(monthString, comma);</pre>
<p>Das Beispiel erzeugt den folgende Ausgabe:</p>
<pre class="brush: js">The original string is: "Oh brave new world that has such people in it."
The separator is: " "
The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it.
The original string is: "Oh brave new world that has such people in it."
The separator is: "undefined"
The array has 1 elements: Oh brave new world that has such people in it.
The original string is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"
The separator is: ","
The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec</pre>
<h3 id="Example:_Removing_spaces_from_a_string" name="Example:_Removing_spaces_from_a_string">Leerzeichen aus einem String entfernen</h3>
<p>Im folgenden Beispiel sucht <code>split()</code> nach 0 oder mehr Leerzeichen, gefolgt von einem Semikolon und 0 oder mehr Leerzeichen. Wenn es sie findet, entfernt es die Leerzeichen aus dem String. <code>nameList</code> ist das Array, was als Ergebnis von <code>split() zurückgegeben wird</code>.</p>
<pre class="brush: js">var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ';
console.log(names);
var re = /\s*(?:;|$)\s*/;
var nameList = names.split(re);
console.log(nameList);</pre>
<p>Dies protokolliert zwei Zeilen. Die erste Zeile protokolliert die ursprüngliche Zeichenfolge und die zweite Zeile das resultierende Array.</p>
<pre>Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand
[ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand", "" ]
</pre>
<h3 id="Example:_Returning_a_limited_number_of_splits" name="Example:_Returning_a_limited_number_of_splits">Eine begrenzte Anzahl von Trennungen zurückgeben</h3>
<p>Im folgenden Beispiel sucht <code>split()</code> nach 0 oder mehr Leerzeichen im String und gibt die ersten 3 Treffer zurück, die es findet.</p>
<pre class="brush: js">var myString = 'Hello World. How are you doing?';
var splits = myString.split(' ', 3);
console.log(splits);</pre>
<p>Dieses Skript gibt folgendes aus:</p>
<pre>["Hello", "World.", "How"]
</pre>
<h3 id="Teilen_mit_einer_RegExp_um_Teile_des_Trennzeichens_in_das_Ergebnis_aufzunehmen">Teilen mit einer <code>RegExp</code>, um Teile des Trennzeichens in das Ergebnis aufzunehmen</h3>
<p>Wenn <code>separator</code> ein regulärer Ausdruck ist, der runde Klammern <code>()</code> enthält, werden übereinstimmende Ergebnisse in das Array aufgenommen.</p>
<pre class="brush: js">var myString = 'Hello 1 word. Sentence number 2.';
var splits = myString.split(/(\d)/);
console.log(splits);</pre>
<p>Dieses Skript gibt folgendes aus:</p>
<pre class="brush: js">[ "Hello ", "1", " word. Sentence number ", "2", "." ]</pre>
<p> </p>
<h3 id="Teilen_mit_einem_Array_als_Trennzeichen">Teilen mit einem Array als Trennzeichen</h3>
<p> </p>
<pre class="brush: js">var myString = 'this|is|a|Test';
var splits = myString.split(['|']);
console.log(splits); //["this", "is", "a", "Test"]
var myString = 'ca,bc,a,bca,bca,bc';
var splits = myString.split(['a','b']);
// myString.split(['a','b']) ist dasselbe wie myString.split(String(['a','b']))
console.log(splits); //["c", "c,", "c", "c", "c"]</pre>
<h3 id="Example:_Reversing_a_String_using_split" name="Example:_Reversing_a_String_using_split">Einen String mit <code>split()</code> umkehren</h3>
<div class="blockIndicator warning">
<p>Dies ist keine robuste Art einen String umzukehren.</p>
<pre class="brush: js">var str = 'asdfghjkl';
var strReverse = str.split('').reverse().join(''); // 'lkjhgfdsa'
// split() returns an array on which reverse() and join() can be applied
</pre>
<p>Das funktioniert nicht, wenn der String Graphem-Cluster enthält, selbst wenn ein Unicode-fähiger Split verwendet wird (verwenden Sie stattdessen bspw. <a href="https://github.com/mathiasbynens/esrever">esrever</a>).</p>
<pre class="brush: js">var str = 'résumé';
var strReverse = str.split(/(?:)/u).reverse().join('');
// => "́emuśer"
</pre>
<p><strong>Bonus:</strong> Verwenden Sie sen {{jsxref("Operators/Comparison_Operators", "===", "#Identity_.2F_strict_equality_(.3D.3D.3D)")}} Operator um zu testen, ob der ursprüngliche String ein Palindrom war.</p>
</div>
<h2 id="Spezifikationen">Spezifikationen</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('ES3')}}</td>
<td>{{Spec2('ES3')}}</td>
<td>Initiale Definition. Implementiert in JavaScript 1.1.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.5.4.14', 'String.prototype.split')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-string.prototype.split', 'String.prototype.split')}}</td>
<td>{{Spec2('ES6')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-string.prototype.split', 'String.prototype.split')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
<p>{{Compat("javascript.builtins.String.split")}}</p>
<h2 id="See_also" name="See_also">Siehe auch</h2>
<ul>
<li>{{jsxref("String.prototype.charAt()")}}</li>
<li>{{jsxref("String.prototype.indexOf()")}}</li>
<li>{{jsxref("String.prototype.lastIndexOf()")}}</li>
<li>{{jsxref("Array.prototype.join()")}}</li>
</ul>
|