Im vorherigen Artikel „Wie weiß js, ob ein bestimmter Teilstring existiert“ haben wir die Methode zum Ermitteln der ersten oder letzten Vorkommensposition des Teilstrings im String vorgestellt. Dieses Mal erhöhen wir den Schwierigkeitsgrad und sehen, wie wir alle Vorkommen eines Teilstrings in einem String erhalten.
Wir haben im vorherigen Artikel erfahren, dass wir die Funktionen indexOf() und lastIndexOf() verwenden können, um die erste und letzte Vorkommensposition einer Teilzeichenfolge zu ermitteln. Wenn die Teilzeichenfolge nicht gefunden wird, wird -1 zurückgegeben.
Beide Funktionen können den optionalen zweiten Parameter start
empfangen. Der Wert kann nur eine Ganzzahl sein, die die Position in der Zeichenfolge angibt, ab der die Suche gestartet werden soll ~ länge-1
. lastIndexOf() Wenn der Startparameter angegeben ist, wird die angegebene Position in einem String von hinten nach vorne durchsucht. start
,值只能是一个整数,表示从字符串中的哪个位置开始搜索,取值范围是 0
~ length-1
。lastIndexOf()如果指定了start参数,则在一个字符串中的指定位置从后向前搜索。
利用这个可选的第二个参数start和循环语句,我们就可以计算给定子串(包含一个或多个字符)的全部出现位置。
首先看看使用indexOf()是怎么统计给定字符在字符串的所有出现位置
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.indexOf("e"); while(pos > -1){ positions.push(pos); //将出现位置赋给数组 pos = stringValue.indexOf("e",pos + 1); //从给定字符出现位置的后一位开始查找 } console.log(positions);//"3,24,32,35,52"
分析:先使用indexOf("e")
获取第一次出现位置并赋值给变量pos;然后使用while语句通过循环调用indexOf(),不断将查找起始位置设置为“pos + 1
”,从给定字符出现位置pos的后一位开始查找,获取下一个出现位置;直到查找不到,返回-1结束。因此输出结果为:
可以看出,给定字符“e
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.lastIndexOf("e"); while(pos > -1){ positions.push(pos); pos = stringValue.lastIndexOf("e",pos - 1); } console.log(positions);//"3,24,32,35,52"
indexOf("e")
verwenden, um das erste Vorkommen zu ermitteln und zuzuweisen Geben Sie der Variablen pos einen Wert an. Rufen Sie dann mit der while-Anweisung indexOf() über eine Schleife auf, setzen Sie die Suchstartposition konstant auf „pos + 1
“ und beginnen Sie mit der Suche ab der letzten Ziffer gegebene Zeichenposition pos, Holen Sie sich die nächste Vorkommensposition; bis sie nicht mehr gefunden werden kann, wird -1 zurückgegeben. Das Ausgabeergebnis lautet also:
Es ist ersichtlich, dass das angegebene Zeichen „e
“ fünfmal in der Zeichenfolge stringValue vorkommt. Da die Zeichenfolgenposition bei 0 und nicht bei 1 beginnt, sind die Vorkommenspositionen jeweils 3 und 24 , 32, 35, 52.
Dann schauen wir uns an, wie man lastIndexOf() verwendet, um alle Vorkommen eines bestimmten Zeichens in einer Zeichenfolge zu zählen
rrreeeAnalyse: Die Verwendung von lastIndexOf() zum Erhalten aller Vorkommen ähnelt tatsächlich der Verwendung von indexOf(), aber weil lastIndexOf ( ) gibt die Position des letzten Vorkommens zurück, daher müssen wir bei jeder Schleife die Startposition der Suche auf „pos - 1“ setzen. Sehen Sie sich die Ausgabeergebnisse an:
🎜🎜🎜🎜 Es ist ersichtlich, dass alle in der Zeichenfolge stringValue erhaltenen Vorkommenspositionen des angegebenen Zeichens „e“ in umgekehrter Reihenfolge vorliegen und die Reihenfolge lautet: 52, 35, 32, 24, 3 . 🎜🎜Okay, das ist alles. Wenn Sie es brauchen, können Sie lesen: 🎜Javascript-Tutorial für Fortgeschrittene🎜🎜Das obige ist der detaillierte Inhalt vonJS-String-Lernen: Berechnen Sie alle Vorkommenspositionen eines bestimmten Zeichens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!