Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:计算第一个字符串在第二个字符串中出现的次数_Javascript - Fatal编程技术网

Javascript:计算第一个字符串在第二个字符串中出现的次数

Javascript:计算第一个字符串在第二个字符串中出现的次数,javascript,Javascript,我尝试过几种不同的方法,每次都遇到问题 我最初的做法是: function solve(a,b) { var re = new RegExp(b,"g"); var res = a.match(re); console.log(res); } solve("zaz","zazapulz") //returns null 这种方法也是: function solve(a,b) { String.prototype.count=function(c) { var result = 0

我尝试过几种不同的方法,每次都遇到问题

我最初的做法是:

function solve(a,b) {

var re = new RegExp(b,"g");
var res = a.match(re);
console.log(res);

}

solve("zaz","zazapulz") //returns null
这种方法也是:

function solve(a,b) {

String.prototype.count=function(c) { 
  var result = 0, i = 0;
  for(i;i<this.length;i++)if(this[i]==c)result++;
  return result;
};

console.log(a.count(b)); 

}


solve("zaz","zazapulz") //returns 0
函数求解(a,b){
String.prototype.count=函数(c){
var结果=0,i=0;
对于(i;i使用
split

function solve(a,b) {
   return b.split( a ).length - 1;
}
演示

函数求解(a,b){
返回b.split(a).长度-1;
}
log(solve(“zaz”、“zazapulz”))
使用
split

function solve(a,b) {
   return b.split( a ).length - 1;
}
演示

函数求解(a,b){
返回b.split(a).长度-1;
}
log(solve(“zaz”,“zazapulz”))
函数求解(a,b){
var re=新的RegExp(a,“g”);//---+
//|开关变量a | b
var res=b.匹配(re);//---+
控制台日志(res);
}
求解(“zaz”,“zazapulz”)//日志[“zaz”]
函数求解(a,b){
var re=新的RegExp(a,“g”);//---+
//|开关变量a | b
var res=b.匹配(re);//---+
控制台日志(res);
}

solve(“zaz”、“zazapulz”)//logs[“zaz”]
如果要计算匹配项(包括重叠的匹配项),可以迭代使用:

函数求解(a,b){
变量计数=0
var from=0
while((from=b.indexOf(a,from)+1)!==0){
计数++
}
console.log(计数)
}
解算('zaz','zazapulz')

solve('zaz','zazazaz')
如果要计算匹配项(包括重叠的匹配项),可以迭代使用:

函数求解(a,b){
变量计数=0
var from=0
while((from=b.indexOf(a,from)+1)!==0){
计数++
}
console.log(计数)
}
解算('zaz','zazapulz')

solve('zaz','zazazaz')
solve('zaz','zazaz')应该返回什么
return?1?或2?这是来自js挑战网站的,他们希望它返回2个应该
solve('zaz','zazazaz')的可能重复项
return?1?或2?这是来自js挑战网站的,他们希望它返回2可能重复的@PatrickRoberts同意,我将在答案中指定假设。@PatrickRoberts我已经更新了答案,以考虑重叠。@PatrickRoberts同意,我将在答案中指定假设。@PatrickRoberts我已经更新了考虑重叠的答案。还要注意,当
a
包含特殊正则字符时,这不起作用。还要注意,当
a
包含特殊正则字符时,这不起作用。