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
|
---
title: String.prototype.substr()
slug: Web/JavaScript/Reference/Global_Objects/String/substr
tags:
- JavaScript
- Method
- Prototype
- Reference
- String
translation_of: Web/JavaScript/Reference/Global_Objects/String/substr
---
<div>{{JSRef}}</div>
<p>Die Methode <strong><code>substr()</code></strong> gibt die Zeichen eines Strings in einem gegebenen Intervall zurück.</p>
<h2 id="Syntax" name="Syntax">Syntax</h2>
<pre class="syntaxbox"><code><var>str</var>.substr(<var>start</var>[, <var>length</var>])</code></pre>
<h3 id="Parameters" name="Parameters">Parameter</h3>
<dl>
<dt><code>start</code></dt>
<dd>Ort im String, an dem mit dem Extrahieren von Zeichen begonnen wird. Wird eine negative Zahl übergeben, wird sie als <code>str.length - start</code> behandelt (Wenn <code>start</code> z. B. -3 ist, wird es als <code>str.length - 3</code> behandelt).</dd>
<dt><code>length</code></dt>
<dd>Optional. Die Anzahl der Zeichen, die extrahiert werden sollen.</dd>
</dl>
<h3 id="Description" name="Description">Rückgabewert</h3>
<p>Einen neuen String, der den extrahierten Bereich des gegebene Strings enthält. Wenn <strong><code>length</code> <code>0</code></strong> oder negativ ist, wird ein leerer String zurückgegeben.</p>
<h2 id="Description" name="Description">Beschreibung</h2>
<p><code>start</code> ist ein Zeichenindex. Der Index des ersten Zeichens ist 0 und der Index des letzten Zeichens ist 1 weniger als die Länge des Strings. <code>substr()</code>fängt mit dem Extrahieren von Zeichen bei <code>start</code> an und extrahiert <code>length</code> Zeichen (es sei denn, es erreicht vorher das Ende des Strings, dann gibt es weniger zurück).</p>
<p>Wenn <code>start</code> positiv ist und größer gleich der Länge des Strings ist, gibt <code>substr()</code> einen leeren String zurück.</p>
<p>Wenn <code>start</code> negativ ist, verwendet <code>substr()</code> es als Zeichenindex vom Ende des Strings. Wenn <code>start</code> negativ ist und <code>abs(start)</code> größer als die Länge des Strings ist, verwendet <code>substr()</code> 0 als Zeichenindex. Anmerkung: Der beschriebene Umgang mit negativen Werten für <code>start</code> wird von Microsoft JScript nicht unterstützt.</p>
<p>Wenn <code>length</code> 0 oder negativ ist, gibt <code>substr()</code> einen leeren String zurück. Wenn <code>length</code> nicht übergeben wird, extrahiert <code>substr()</code> alle Zeichen bis zum Ende des Strings.</p>
<h2 id="Examples" name="Examples">Beispiele</h2>
<h3 id="Example:_Using_substr" name="Example:_Using_substr">Verwenden von <code>substr()</code></h3>
<pre class="brush: js">var str = 'abcdefghij';
console.log('(1, 2): ' + str.substr(1, 2)); // '(1, 2): bc'
console.log('(-3, 2): ' + str.substr(-3, 2)); // '(-3, 2): hi'
console.log('(-3): ' + str.substr(-3)); // '(-3): hij'
console.log('(1): ' + str.substr(1)); // '(1): bcdefghij'
console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
console.log('(20, 2): ' + str.substr(20, 2)); // '(20, 2): '
</pre>
<h2 id="Polyfill" name="Polyfill">Polyfill</h2>
<p>Microsofts JScript unterstützt keine negativen Werte für den Startindex. Der folgende Kompatibilitätscode ist ein Workaround für diesen Bug:</p>
<pre class="brush: js">// Nur verwenden, wenn die substr()-Funktion nicht funktioniert
if ('ab'.substr(-1) != 'b') {
/**
* Einen Teilstring erhalten
* @param {integer} start Startindex des Teilstrings
* @param {integer} length Länge des Teilstrings
* @return {string}
*/
String.prototype.substr = function(substr) {
return function(start, length) {
// Aufruf der Originalfunktion
return substr.call(this,
// Wenn start negativ ist, berechnen wie viel start
// vom Anfang des Strings ist
start < 0 ? this.length + start : start,
length);
}
}(String.prototype.substr);
}
</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('ES3')}}</td>
<td>{{Spec2('ES3')}}</td>
<td>Im (informativen) Anhang B "Compatibility" definiert. Implementiert in JavaScript 1.0.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-B.2.3', 'String.prototype.substr')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td>Im (informativen) Anhang B "Compatibility" definiert.</td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-string.prototype.substr', 'String.prototype.substr')}}</td>
<td>{{Spec2('ES6')}}</td>
<td>Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert.</td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-string.prototype.substr', 'String.prototype.substr')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td>Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert.</td>
</tr>
</tbody>
</table>
<h2 id="Browserkompatibilität">Browserkompatibilität</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Grundlegende Unterstützung</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Grundlegende Unterstützung</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="See_also" name="See_also">Siehe auch</h2>
<ul>
<li>{{jsxref("String.prototype.slice()")}}</li>
<li>{{jsxref("String.prototype.substring()")}}</li>
</ul>
|