String.prototype.substr()
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, kann sie bereits aus den relevanten Webstandards entfernt worden sein, befindet sich im Prozess der Entfernung oder wird nur aus Kompatibilitätsgründen beibehalten. Vermeiden Sie die Verwendung und aktualisieren Sie gegebenenfalls bestehenden Code; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu treffen. Beachten Sie, dass diese Funktion jederzeit nicht mehr funktionieren kann.
Die substr()
Methode von String
Werten gibt einen Teil dieses Strings zurück, beginnend bei dem angegebenen Index und erstreckt sich über eine bestimmte 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, welches optional normativ für Nicht-Browser-Laufzeitumgebungen ist. Daher wird empfohlen, stattdessen die Standardmethoden String.prototype.substring()
und String.prototype.slice()
zu verwenden, um den Code möglichst plattformübergreifend freundlich zu gestalten. Die Seite von String.prototype.substring()
bietet einige Vergleiche zwischen den drei Methoden.
Probieren Sie es aus
Syntax
substr(start)
substr(start, length)
Parameter
Rückgabewert
Ein neuer String, der den angegebenen Teil des gegebenen Strings enthält.
Beschreibung
Die substr()
Methode eines Strings extrahiert length
Zeichen aus dem String, beginnend ab dem start
Index.
- Wenn
start >= str.length
, wird ein leerer String zurückgegeben. - Wenn
start < 0
, beginnt der Index vom Ende des Strings zu zählen. Formaler ausgedrückt beginnt der Substring in diesem Fall beimax(start + str.length, 0)
. - Wenn
start
weggelassen oder alsundefined
angegeben wird, wird er 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()
nicht zu verwenden, gibt es keinen trivialen Weg, substr()
in altem Code zu slice()
oder substring()
zu migrieren, ohne im Wesentlichen ein Polyfill für substr()
zu schreiben. Zum Beispiel haben str.substr(a, l)
, str.slice(a, a + l)
und str.substring(a, a + l)
alle unterschiedliche Ergebnisse, wenn str = "01234", a = 1, l = -2
sind — substr()
gibt einen leeren String zurück, slice()
gibt "123"
zurück, während substring()
"0"
zurückgibt. Der tatsächliche Refactoring-Pfad 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 Language Specification # sec-string.prototype.substr |
Browser-Kompatibilität
BCD tables only load in the browser