String.prototype.substr()

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 (Wenn start z. B. -3 ist, wird es als str.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)

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

 Mitwirkende an dieser Seite: schlagi123, jazzpi
 Zuletzt aktualisiert von: schlagi123,