Javascript 检查字符串在字符串中的次数

Javascript 检查字符串在字符串中的次数,javascript,Javascript,我得到了这个字符串: var longText="This is a superuser test, super user is is super important!"; 我想知道字符串“su”在长文中出现了多少次,以及每个“su”的位置 我试着: var nr4 = longText.replace("su", "").length; 主文本和nr4之间的长度差除以“su”lenght being 2会导致多次重复,但我打赌有更好的方法。可以做到: var indexesOf = fun

我得到了这个字符串:

var longText="This is a superuser test, super user is is super important!";
我想知道字符串“su”在长文中出现了多少次,以及每个“su”的位置

我试着:

var nr4 = longText.replace("su", "").length;
主文本和nr4之间的长度差除以“su”lenght being 2会导致多次重复,但我打赌有更好的方法。可以做到:

var indexesOf = function(baseString, strToMatch){

    var baseStr = new String(baseString);

    var wordLen = strToMatch.length;
    var listSu = [];
    // Number of strToMatch occurences
    var nb = baseStr.split(strToMatch).length - 1;

    for (var i = 0, len = nb; i < len; i++){
        var ioF = baseStr.indexOf(strToMatch);
        baseStr = baseStr.slice(ioF + wordLen, baseStr.length);
        if (i > 0){
            ioF = ioF + listSu[i-1] + wordLen;
        }
        listSu.push(ioF);
    }
    return listSu;
}

indexesOf("This is a superuser test, super user is is super important!","su");
return [10, 26, 43]
var indexesOf=function(baseString,strotomatch){
var baseStr=新字符串(baseString);
var-wordLen=strToMatch.length;
var listSu=[];
//发生strToMatch的次数
var nb=基线分割(strToMatch).length-1;
对于(变量i=0,len=nb;i0){
ioF=ioF+listSu[i-1]+wordLen;
}
listSu.push(ioF);
}
返回列表SU;
}
indexesOf(“这是一个超级用户测试,超级用户非常重要!”,“su”);
返回[10,26,43]
例如

var parts=longText.split("su");
alert(parts.length-1); // length will be two if there is one "su"
更多详细信息请使用


使用。根据MDN代码修改的示例
len
包含
su
出现的次数

var myRe = /su/g;
var str = "This is a superuser test, super user is is super important!";
var myArray, len = 0;
while ((myArray = myRe.exec(str)) !== null) {
  len++;
  var msg = "Found " + myArray[0] + ".  ";
  msg += "Next match starts at " + myRe.lastIndex;
  console.log(msg, len);
}

// "Found su.  Next match starts at 12" 1
// "Found su.  Next match starts at 28" 2
// "Found su.  Next match starts at 45" 3

var howmany=longText.split(“su”).length
var res=longText.match(/su/g)正常,如何检查每个“su”?“su”的位置。拆分(“su”)。不建议使用长度=2的破坏方法。
var myRe = /su/g;
var str = "This is a superuser test, super user is is super important!";
var myArray, len = 0;
while ((myArray = myRe.exec(str)) !== null) {
  len++;
  var msg = "Found " + myArray[0] + ".  ";
  msg += "Next match starts at " + myRe.lastIndex;
  console.log(msg, len);
}

// "Found su.  Next match starts at 12" 1
// "Found su.  Next match starts at 28" 2
// "Found su.  Next match starts at 45" 3
var longText="This is a superuser test, super user is is super important!";
var count = 0;
while(longText.indexOf("su") != -1) { // NB the indexOf() method is case sensitive!
    longText = longText.replace("su",""); //replace first occurence of 'su' with a void string
    count++;
}