Die Methode substr()
gibt die Zeichen eines Strings in einem gegebenen Intervall zurück.
Syntax
str.substr(start[, length])
Parameter
start
- Ort im String, an dem mit dem Extrahieren von Zeichen begonnen wird. Wird eine negative Zahl übergeben, wird sie als
str.length + start
behandelt (Wennstart
z. B. -3 ist, wird es alsstr.length - 3
behandelt). length
- Optional. Die Anzahl der Zeichen, die extrahiert werden sollen.
Rückgabewert
Einen neuen String, der den extrahierten Bereich des gegebene Strings enthält. Wenn length
0
oder negativ ist, wird ein leerer String zurückgegeben.
Beschreibung
start
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. substr()
fängt mit dem Extrahieren von Zeichen bei start
an und extrahiert length
Zeichen (es sei denn, es erreicht vorher das Ende des Strings, dann gibt es weniger zurück).
Wenn start
positiv ist und größer gleich der Länge des Strings ist, gibt substr()
einen leeren String zurück.
Wenn start
negativ ist, verwendet substr()
es als Zeichenindex vom Ende des Strings. Wenn start
negativ ist und abs(start)
größer als die Länge des Strings ist, verwendet substr()
0 als Zeichenindex. Anmerkung: Der beschriebene Umgang mit negativen Werten für start
wird von Microsoft JScript nicht unterstützt.
Wenn length
0 oder negativ ist, gibt substr()
einen leeren String zurück. Wenn length
nicht übergeben wird, extrahiert substr()
alle Zeichen bis zum Ende des Strings.
Beispiele
Verwenden von substr()
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): '
Polyfill
Microsofts JScript unterstützt keine negativen Werte für den Startindex. Der folgende Kompatibilitätscode ist ein Workaround für diesen Bug:
// 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); }
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Im (informativen) Anhang B "Compatibility" definiert. Implementiert in JavaScript 1.0. |
ECMAScript 5.1 (ECMA-262) Die Definition von 'String.prototype.substr' in dieser Spezifikation. |
Standard | Im (informativen) Anhang B "Compatibility" definiert. |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'String.prototype.substr' in dieser Spezifikation. |
Standard | Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert. |
ECMAScript 2017 Draft (ECMA-262) Die Definition von 'String.prototype.substr' in dieser Spezifikation. |
Entwurf | Im (normativen) Anhang B "Additional ECMAScript Features for Web Browsers" definiert. |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Grundlegende Unterstützung | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Grundlegende Unterstützung | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |