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 Teil dieses Strings zurück, beginnend beim angegebenen Index und erstreckt sich über eine angegebene Anzahl von Zeichen danach.
Hinweis: substr()
ist nicht Teil der Haupt-ECMAScript-Spezifikation — es ist definiert in Anhang B: Zusätzliche ECMAScript-Funktionen für Webbrowser, welcher normativ optional für Nicht-Browser-Laufzeiten ist. Daher wird empfohlen, stattdessen die standardmäßigen Methoden String.prototype.substring()
und String.prototype.slice()
zu verwenden, um den Code maximal plattformfreundlich zu gestalten. Die Seite zu String.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 im zurückgegebenen Substring enthalten sein soll.
length
Optional-
Die Anzahl der auszuziehenden Zeichen.
Rückgabewert
Ein neuer String, der den angegebenen Teil des gegebenen Strings enthält.
Beschreibung
Die substr()
-Methode eines Strings extrahiert length
Zeichen vom String, beginnend beim start
-Index.
- Wenn
start >= str.length
, wird ein leerer String zurückgegeben. - Wenn
start < 0
, beginnt der Index ab dem Ende des Strings. Formaler gesagt beginnt in diesem Fall der Substring beimax(start + str.length, 0)
. - Wenn
start
weggelassen oder alsundefined
angegeben wird, wird es als0
behandelt. - Wenn
length
weggelassen oder alsundefined
angegeben wird, oder wennstart + length >= str.length
, extrahiertsubstr()
Zeichen bis zum Ende des Strings. - Wenn
length < 0
, wird ein leerer String zurückgegeben. - Sowohl für
start
als auchlength
wirdNaN
als0
behandelt.
Obwohl es empfohlen wird, substr()
zu vermeiden, gibt es keinen trivialen Weg, substr()
in bestehendem Code auf slice()
oder substring()
umzustellen, 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, wenn str = "01234", a = 1, l = -2
— substr()
gibt einen leeren String zurück, slice()
gibt "123"
zurück, während substring()
"0"
ergibt. Der tatsächliche Refactoring-Weg hängt vom Wissen über den Bereich 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 |