String.prototype.substr()
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.
Die substr()
-Methode von String
-Werten gibt einen Abschnitt dieses Strings zurück, beginnend bei dem angegebenen Index und verlängert um eine bestimmte Anzahl von Zeichen danach.
Note:
substr()
ist nicht Teil der Haupt-ECMAScript-Spezifikation — es ist definiert in Anhang B: Zusätzliche ECMAScript-Features für Webbrowser, welches normativ optional für Nicht-Browser-Laufzeitumgebungen ist. Daher wird empfohlen, die standardisierten MethodenString.prototype.substring()
undString.prototype.slice()
zu verwenden, um den Code so plattformübergreifend wie möglich zu gestalten. Die Seite zuString.prototype.substring()
enthält einige Vergleiche zwischen den drei Methoden.
Probieren Sie es aus
const str = "Mozilla";
console.log(str.substr(1, 2));
// Expected output: "oz"
console.log(str.substr(2));
// Expected output: "zilla"
Syntax
substr(start)
substr(start, length)
Parameter
start
-
Der Index des ersten Zeichens, das in die zurückgegebene Teilzeichenkette einbezogen werden soll.
length
Optional-
Die Anzahl der zu extrahierenden Zeichen.
Rückgabewert
Ein neuer String, der den angegebenen Teil des ursprünglichen Strings enthält.
Beschreibung
Die substr()
-Methode eines Strings extrahiert length
Zeichen aus dem String, beginnend beim Index start
.
- Wenn
start >= str.length
, wird ein leerer String zurückgegeben. - Wenn
start < 0
ist, beginnt der Index von hinten am Ende des Strings zu zählen. Formaler ausgedrückt beginnt in diesem Fall die Teilzeichenkette beimax(start + str.length, 0)
. - Wenn
start
weggelassen oderundefined
ist, wird es als0
behandelt. - Wenn
length
weggelassen oderundefined
ist oder wennstart + length >= str.length
, extrahiertsubstr()
Zeichen bis zum Ende des Strings. - Wenn
length < 0
ist, wird ein leerer String zurückgegeben. - Sowohl
start
als auchlength
werden, wenn sie den WertNaN
haben, als0
behandelt.
Obwohl Sie ermutigt werden, die Verwendung von substr()
zu vermeiden, gibt es keinen trivialen Weg, substr()
in Legacy-Code auf entweder slice()
oder substring()
zu migrieren, ohne im Wesentlichen ein Polyfill für substr()
zu schreiben. Zum Beispiel geben str.substr(a, l)
, str.slice(a, a + l)
und str.substring(a, a + l)
unterschiedliche Ergebnisse zurück, wenn str = "01234", a = 1, l = -2
— substr()
gibt einen leeren String zurück, slice()
gibt "123"
zurück, während substring()
"0"
zurückgibt. Der tatsächliche Refactoringpfad hängt von der Kenntnis des Bereichs von a
und l
ab.
Beispiele
Verwendung von substr()
const aString = "Mozilla";
console.log(aString.substr(0, 1)); // 'M'
console.log(aString.substr(1, 0)); // ''
console.log(aString.substr(-1, 1)); // 'a'
console.log(aString.substr(1, -1)); // ''
console.log(aString.substr(-3)); // 'lla'
console.log(aString.substr(1)); // 'ozilla'
console.log(aString.substr(-20, 2)); // 'Mo'
console.log(aString.substr(20, 2)); // ''
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-string.prototype.substr |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
substr |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- Deprecated. Not for use in new websites.