Heim > Fragen und Antworten > Hauptteil
Heute habe ich die Methode split() verwendet, um zu zählen, wie oft ein bestimmtes Zeichen in einer Zeichenfolge vorkommt. Ich habe übrigens bei Baidu nachgesehen, ob es andere Methoden gibt, aber ich kann sie nicht verstehen count++; offset += subStr.length;
Was bedeutet das? Bitte lassen Sie es sich von den vorbeikommenden Senioren erklären!
function countInstances (mainStr, subStr) {
var count = 0;
var offset = 0;
do{
offset = mainStr.indexOf(subStr, offset); // 通过indexOf获得某字符在字符串中出现的位置
if( offset != -1 ) { // 如果某字符存在于字符串中
count++;
offset += subStr.length;
}
} while ( offset != -1 );
return count;
}
countInstances('www.segmentfault.com', '.')
// alert( countInstances('www.segmentfault.com', '.') );
typecho2017-06-12 09:35:03
indexOf用法count++; offset += subStr.length;
count
表示的是计数器,记下字符出现的次数offset
赋值给 indexOf
的第二个参数,表示从父字符串的 offset 索引位置开始 查找 子字符串subStr
当offset
找到了,就count
+1,再从offset += subStr.length
的位置开始找,因为indexOf
只能判断最初找到子字符串的索引。。
我好像说的有的复杂,其实很简单的,你在纸上画下执行过程就知道了