Start · Sprachen · JavaScript · Referenz · String.prototype.substring()

String.prototype.substring()

Methode

Die Methode <code>substring()</code> von <code>String</code>-Werten gibt den Teil des Strings vom Start-Index bis ausschließlich zum End-Index zurück.

Kategorie: method-property

Signatur

substring(indexStart) / substring(indexStart, indexEnd)

Beschreibung

Die Methode substring() von String-Werten gibt den Teil dieses Strings vom Start-Index bis ausschließlich zum End-Index zurück, oder bis zum Ende des Strings, wenn kein End-Index angegeben wird.

substring() extrahiert Zeichen von indexStart bis ausschließlich indexEnd. Im Einzelnen:

  • Wenn indexEnd weggelassen wird oder undefined ist, extrahiert substring() Zeichen bis zum Ende des Strings.
  • Wenn indexStart gleich indexEnd ist, gibt substring() einen leeren String zurück.
  • Wenn indexStart größer als indexEnd ist, ist der Effekt von substring() so, als ob die beiden Argumente vertauscht worden wären; siehe Beispiel unten.

Jeder Argumentwert, der kleiner als 0 oder größer als str.length ist, wird so behandelt, als ob er 0 bzw. str.length wäre.

Jeder Argumentwert, der NaN ist, wird so behandelt, als ob er 0 wäre.

Parameter

Name Typ Default Beschreibung
$indexStart Pflicht number Der Index des ersten Zeichens, das im zurückgegebenen Substring enthalten sein soll.
$indexEnd number Der Index des ersten Zeichens, das aus dem zurückgegebenen Substring ausgeschlossen werden soll.

Rückgabewert

Typ
string
Beschreibung
Ein neuer String, der den angegebenen Teil des gegebenen Strings enthält.

Beispiele

Verwendung von substring()

const anyString = "Mozilla";

console.log(anyString.substring(0, 1)); // "M"
console.log(anyString.substring(1, 0)); // "M"

console.log(anyString.substring(0, 6)); // "Mozill"

console.log(anyString.substring(4)); // "lla"
console.log(anyString.substring(4, 7)); // "lla"
console.log(anyString.substring(7, 4)); // "lla"

console.log(anyString.substring(0, 7)); // "Mozilla"
console.log(anyString.substring(0, 10)); // "Mozilla"

Verwendung von substring() mit der Eigenschaft length

const text = "Mozilla";

// Nimmt die letzten 4 Zeichen des Strings
console.log(text.substring(text.length - 4)); // gibt "illa" aus

// Nimmt die letzten 5 Zeichen des Strings
console.log(text.substring(text.length - 5)); // gibt "zilla" aus

Der Unterschied zwischen substring() und substr()

const text = "Mozilla";
console.log(text.substring(2, 5)); // "zil"
console.log(text.substr(2, 3)); // "zil"

Unterschiede zwischen substring() und slice()

const text = "Mozilla";
console.log(text.substring(5, 2)); // "zil"
console.log(text.slice(5, 2)); // ""

Negative oder NaN-Argumente bei substring()

console.log(text.substring(-5, 2)); // "Mo"
console.log(text.substring(-5, -2)); // ""

slice() mit negativen Werten

console.log(text.slice(-5, 2)); // ""
console.log(text.slice(-5, -2)); // "zil"

Ersetzen eines Substrings innerhalb eines Strings

// Ersetzt oldS durch newS im String fullS
function replaceString(oldS, newS, fullS) {
  for (let i = 0; i < fullS.length; ++i) {
    if (fullS.substring(i, i + oldS.length) === oldS) {
      fullS =
        fullS.substring(0, i) +
        newS +
        fullS.substring(i + oldS.length, fullS.length);
    }
  }
  return fullS;
}

replaceString("World", "Web", "Brave New World");

Bessere Methode zum Ersetzen von Strings

function replaceString(oldS, newS, fullS) {
  return fullS.split(oldS).join(newS);
}

// Wichtig · Fallstricke

Unterschiede zu substr(): Die beiden Parameter von substr() sind start und length, während sie bei substring() start und end sind. Der start-Index von substr() wird bei negativen Werten zum Ende des Strings umgeschlagen, während substring() ihn auf 0 klemmt. Negative Längen bei substr() werden als Null behandelt, während substring() die beiden Indizes vertauscht, wenn end kleiner als start ist. Zudem gilt substr() als Legacy-Feature in ECMAScript und sollte, wenn möglich, vermieden werden. Hinweis zum Ersetzen: Die einfache Schleifen-Implementierung kann zu einer Endlosschleife führen, wenn oldS selbst ein Substring von newS ist – zum Beispiel beim Versuch, hier \"World\" durch \"OtherWorld\" zu ersetzen. Für das Ersetzen von Substrings sollte in den meisten Fällen String.prototype.replace() verwendet werden.