String.prototype.substring()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die substring()
-Methode von String
-Werten gibt den Teil dieses Strings zurück, der vom Startindex bis (aber ohne) den Endindex reicht, oder bis zum Ende des Strings, falls kein Endindex angegeben ist.
Probieren Sie es aus
const str = "Mozilla";
console.log(str.substring(1, 3));
// Expected output: "oz"
console.log(str.substring(2));
// Expected output: "zilla"
Syntax
substring(indexStart)
substring(indexStart, indexEnd)
Parameter
indexStart
-
Der Index des ersten Zeichens, das im zurückgegebenen Substring enthalten sein soll.
indexEnd
Optional-
Der Index des ersten Zeichens, das im zurückgegebenen Substring ausgeschlossen werden soll.
Rückgabewert
Ein neuer String, der den angegebenen Teil des gegebenen Strings enthält.
Beschreibung
substring()
extrahiert Zeichen von indexStart
bis aber ohne indexEnd
. Im Besonderen:
- Wenn
indexEnd
weggelassen wird, extrahiertsubstring()
Zeichen bis zum Ende des Strings. - Wenn
indexStart
gleichindexEnd
ist, gibtsubstring()
einen leeren String zurück. - Wenn
indexStart
größer ist alsindexEnd
, hatsubstring()
den Effekt, als wären die beiden Argumente vertauscht; siehe Beispiel unten.
Jeder Argumentwert, der kleiner als 0
oder größer als str.length
ist, wird behandelt, als wäre er 0
beziehungsweise str.length
.
Jeder Argumentwert, der NaN
ist, wird behandelt, als wäre er 0
.
Beispiele
Verwendung von substring()
Das folgende Beispiel verwendet substring()
, um Zeichen aus dem String "Mozilla"
anzuzeigen:
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 length-Eigenschaft
Das folgende Beispiel verwendet die Methode substring()
und die
length
-Eigenschaft, um die letzten Zeichen eines
bestimmten Strings zu extrahieren. Diese Methode kann einfacher zu merken sein, da Sie
die Start- und Endindizes wie in den obigen Beispielen nicht kennen müssen.
const text = "Mozilla";
// Takes 4 last characters of string
console.log(text.substring(text.length - 4)); // prints "illa"
// Takes 5 last characters of string
console.log(text.substring(text.length - 5)); // prints "zilla"
Der Unterschied zwischen substring() und substr()
Es gibt subtile Unterschiede zwischen den Methoden substring()
und
substr()
, daher sollten Sie darauf achten, diese nicht zu verwechseln.
- Die zwei Parameter von
substr()
sindstart
undlength
, während sie beisubstring()
start
undend
sind. - Der
start
-Index vonsubstr()
wird um die Länge des Strings zurückgesetzt, wenn er negativ ist, währendsubstring()
ihn auf0
klemmt. - Negative Längen in
substr()
werden als Null behandelt, währendsubstring()
die beiden Indizes vertauscht, wennend
kleiner ist alsstart
.
Darüber hinaus wird substr()
als veraltete Funktion in ECMAScript angesehen, daher sollte deren Verwendung möglichst vermieden werden.
const text = "Mozilla";
console.log(text.substring(2, 5)); // "zil"
console.log(text.substr(2, 3)); // "zil"
Unterschiede zwischen substring() und slice()
Die Methoden substring()
und slice()
sind fast identisch, es gibt jedoch einige subtile Unterschiede, insbesondere in der Handhabung negativer Argumente.
Die Methode substring()
vertauscht ihre beiden Argumente, wenn
indexStart
größer ist als indexEnd
,
was dazu führt, dass immer ein String zurückgegeben wird. Die Methode slice()
gibt in diesem Fall hingegen einen leeren String zurück.
const text = "Mozilla";
console.log(text.substring(5, 2)); // "zil"
console.log(text.slice(5, 2)); // ""
Wenn eines oder beide Argumente negativ oder NaN
sind, behandelt
substring()
sie, als wären sie 0
.
console.log(text.substring(-5, 2)); // "Mo"
console.log(text.substring(-5, -2)); // ""
Auch slice()
behandelt NaN
-Argumente als 0
, zählt jedoch bei
negativen Werten rückwärts vom Ende des Strings, um die
Indizes zu finden.
console.log(text.slice(-5, 2)); // ""
console.log(text.slice(-5, -2)); // "zil"
Weitere Beispiele mit negativen Zahlen finden Sie auf der Seite zu slice()
.
Ersetzen eines Substrings innerhalb eines Strings
Das folgende Beispiel ersetzt einen Substring innerhalb eines Strings. Es ersetzt sowohl einzelne Zeichen als auch Substrings. Der Funktionsaufruf am Ende des Beispiels erzeugt einen String Brave New Web
aus dem ursprünglichen String Brave New World
.
// Replaces oldS with newS in the 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");
Beachten Sie, dass dies zu einer Endlosschleife führen kann, wenn oldS
selbst ein
Substring von newS
ist — beispielsweise, wenn versucht wird,
"World"
durch "OtherWorld"
zu ersetzen.
Eine bessere Methode, um Strings zu ersetzen, ist wie folgt:
function replaceString(oldS, newS, fullS) {
return fullS.split(oldS).join(newS);
}
Der obige Code dient als Beispiel für Substring-Operationen. Wenn Sie
Substrings ersetzen müssen, möchten Sie in den meisten Fällen
String.prototype.replace()
verwenden.
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-string.prototype.substring |
Browser-Kompatibilität
BCD tables only load in the browser