String.prototype.substr()
Deprecated
Avoid using this feature in new projects.
TC39 included substr() in Annex B of the ECMAScript specification, which covers JavaScript features with "one or more undesirable characteristics and in the absence of legacy usage would be removed."
This feature may be a candidate for removal from web standards or browsers.>
Die Methode substr() von String-Werten gibt einen Teil der Zeichenfolge zurück. Dieser beginnt am angegebenen Index und umfasst die angegebene Anzahl von Zeichen.
Hinweis:
substr() ist nicht Teil der ECMAScript-Hauptspezifikation. Die Methode ist in Annex B: Additional ECMAScript Features for Web Browsers definiert; für Laufzeitumgebungen außerhalb von Browsern ist ihre Implementierung optional. Verwenden Sie daher stattdessen die standardisierten Methoden String.prototype.substring() und String.prototype.slice(), damit Ihr Code möglichst plattformübergreifend funktioniert. Auf der Seite zu String.prototype.substring() werden die drei Methoden verglichen.
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 der zurückgegebenen Teilzeichenfolge enthalten sein soll.
lengthOptional-
Die Anzahl der zu extrahierenden Zeichen.
Rückgabewert
Eine neue Zeichenfolge, die den angegebenen Teil der ursprünglichen Zeichenfolge enthält.
Beschreibung
Die Methode substr() einer Zeichenfolge extrahiert length Zeichen ab dem Index start.
- Wenn
start >= str.lengthgilt, wird eine leere Zeichenfolge zurückgegeben. - Wenn
start < 0gilt, wird der Index vom Ende der Zeichenfolge aus gezählt. Genauer gesagt beginnt die Teilzeichenfolge in diesem Fall beimax(start + str.length, 0). - Wenn
startweggelassen wird oderundefinedist, wird der Wert als0behandelt. - Wenn
lengthweggelassen wird oderundefinedist oder wennstart + length >= str.lengthgilt, extrahiertsubstr()die Zeichen bis zum Ende der Zeichenfolge. - Wenn
length < 0gilt, wird eine leere Zeichenfolge zurückgegeben. - Sowohl für
startals auch fürlengthwirdNaNals0behandelt.
Obwohl Sie substr() möglichst nicht verwenden sollten, gibt es keine einfache Möglichkeit, die Verwendung von substr() in bestehendem Code durch slice() oder substring() zu ersetzen, ohne im Wesentlichen einen Polyfill für substr() zu schreiben. Beispielsweise liefern str.substr(a, l), str.slice(a, a + l) und str.substring(a, a + l) bei str = "01234", a = 1, l = -2 unterschiedliche Ergebnisse: substr() gibt eine leere Zeichenfolge zurück, slice() gibt "123" zurück und substring() gibt "0" zurück. Wie der Code tatsächlich umgestellt werden kann, hängt vom möglichen Wertebereich von a und l ab.
Beispiele
>substr() verwenden
const string = "Mozilla";
console.log(string.substr(0, 1)); // 'M'
console.log(string.substr(1, 0)); // ''
console.log(string.substr(-1, 1)); // 'a'
console.log(string.substr(1, -1)); // ''
console.log(string.substr(-3)); // 'lla'
console.log(string.substr(1)); // 'ozilla'
console.log(string.substr(-20, 2)); // 'Mo'
console.log(string.substr(20, 2)); // ''
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.substr> |