Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erläuterung der häufig verwendeten Methoden zum Abfangen von Zeichenfolgen substr(), substring(), Slice()_Javascript

Ausführliche Erläuterung der häufig verwendeten Methoden zum Abfangen von Zeichenfolgen substr(), substring(), Slice()_Javascript

WBOY
WBOYOriginal
2016-05-16 15:25:261926Durchsuche

slice()

Definition: Akzeptiert einen oder zwei Parameter. Der erste Parameter gibt die Startposition des Teilstrings an. Der zweite Parameter stellt die Endposition des Teilstrings dar (mit Ausnahme des Zeichens an der Endposition). Wenn der zweite Parameter nicht übergeben wird, wird die Länge des Strings als Endposition verwendet.

1. Wenn der übergebene Parameter ein positiver Wert ist:

var str ="helloWorld";

// 一个参数,则将字符串长度作为结束位置
alert(str.slice(3)); // "loWorld"

// 两个参数,7位置上的字符为"r",但不包括结束位置的字符
alert(str.slice(3,7)); // "loWo"

2. Wenn der übergebene Parameter ein negativer Wert ist:

Die

slice()-Methode fügt den übergebenen negativen Wert zur Länge der Zeichenfolge hinzu.

var str ="helloWorld";

// 一个参数,与字符串长度相加即为slice(7)
alert(str.slice(-3)); // "rld"

// 两个参数,与字符串长度相加即为slice(3,6)
alert(str.slice(3,-4)); // "loW"

3. Wenn der zweite Parameter kleiner als der erste Parameter ist:

Wenn der zweite von der Slice()-Methode übergebene Parameter kleiner als der erste Parameter ist, wird eine leere Zeichenfolge zurückgegeben.

var str ="helloWorld";
alert(str.slice(5,3)); // ""

4. IE-Kompatibilität

Beim Test mit dem IE8-Browser gibt es kein Problem und das Verhalten stimmt mit modernen Browsern überein.

substring()

Definition: Akzeptiert einen oder zwei Parameter. Der erste Parameter gibt die Startposition des Teilstrings an. Der zweite Parameter stellt die Endposition des Teilstrings dar (mit Ausnahme des Zeichens an der Endposition). Wenn der zweite Parameter nicht übergeben wird, wird die Länge des Strings als Endposition verwendet.

1. Wenn der übergebene Parameter ein positiver Wert ist: das gleiche Verhalten wie bei der Slice()-Methode

var str ="helloWorld";

// 一个参数,则将字符串长度作为结束位置
alert(str.substring(3)); // "loWorld"

// 两个参数,7位置上的字符为"r",但不包括结束位置的字符
alert(str.substring(3,7)); // "loWo"

2. Wenn der übergebene Parameter ein negativer Wert ist:

substring()方法会把所有负值参数转换为0。来看下例子:

var str ="helloWorld";

// 两个参数,-4会转换为0,相当于substring(3,0) -->即为 substring(0,3)
alert(str.substring(3,-4)); // "hel"

Die Methode

substring() verwendet die kleinere Zahl als Startposition und die größere Zahl als Endposition. Wie im obigen Beispiel haben substring(3,0) und substring(0,3) den gleichen Effekt.

4. IE-Kompatibilität

Beim Test mit dem IE8-Browser gibt es kein Problem und das Verhalten stimmt mit modernen Browsern überein.

substr()

Definition: Akzeptiert einen oder zwei Parameter. Der erste Parameter gibt die Startposition des Teilstrings an. Der zweite Parameter unterscheidet sich etwas von der vorherigen Methode und gibt die Anzahl der zurückgegebenen Zeichen an. Wenn kein zweites Argument übergeben wird, wird die Länge des Strings als Endposition verwendet. Sehen wir uns ein Beispiel an:

1. Wenn der übergebene Parameter ein positiver Wert ist:

var str ="helloWorld";

// 一个参数,则将字符串长度作为结束位置
alert(str.substr(3)); // "loWorld"

// 两个参数,从位置3开始截取后面7个字符
alert(str.substr(3,7)); // "loWorld"

2. Wenn der übergebene Parameter ein negativer Wert ist:

Die Methode

substr() fügt den negativen ersten Parameter zur Länge der Zeichenfolge hinzu und wandelt den negativen zweiten Parameter in 0 um.

var str ="helloWorld";

// 将第一个负的参数加上字符串的长度--->
//即为:substr(7,5) ,从位置7开始向后截取5个字符
alert(str.substr(-3,5)); // "rld"

// 将第二个参数转换为0
// 即为:substr(3,0),即从位置3截取0个字符串,则返回空
alert(str.substr(3,-2)); // ""

3. IE-Kompatibilität

Die substr()-Methode hat Probleme bei der Übergabe negativer Werte und die ursprüngliche Zeichenfolge wird zurückgegeben. IE9 behebt dieses Problem.

Zusammenfassung

Das Verhalten von Slice() und Substring() ist konsistent, wenn positive Parameter übergeben werden. Die Methode substr() kann beim zweiten Parameter leicht verwechselt werden.

Bei der Übergabe negativer Parameter fügt die Methode „slice()“ die Länge der Zeichenfolge hinzu, was der allgemeinen Denkweise entspricht. Das Konvertieren des zweiten Parameters von „substring()“ in 0 führt leicht zu Problemen und die Startposition ist einfach ändern

IE-Kompatibilitätsprobleme können auftreten, wenn die substr()-Methode einen negativen Wert hat.

Zusammenfassend empfehle ich grundsätzlich die Verwendung der Methode „slice()“.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn