如何在Javascript中正确计算替换字符串的数量。由于某种原因,下面的增量函数给了我" 0"而不是" 2"。
var input = "A B C A";
function Replace(str) {
return str.replace(/A/g, "1");
Counter();
}
var increment = 0;
function Counter() {
increment++;
}
alert(Replace(input)); // 1 B C 1
alert(increment); // 2
答案 0 :(得分:3)
KISS,您可以在replace
函数的替换部分中使用函数。在那里你可以增加计数器值。
var input = "A B C A";
var count = 0;
console.log(input.replace(/A/g, function(x){count+=1;return "1"}))
console.log(count)

答案 1 :(得分:2)
注意:我发现您已经接受了解决方案。这有点遗憾,因为我们的答案1对1具有相同的内容,我在约10分钟之前发布了我的答案。好吧,一如既往,这是你的决定。
查看有效的解决方案!
因此,您可以使用以下简单代码计算替换的数量:
var number = 0;
var string = "A B C A"
document.body.innerHTML = string.replace(/A/g, function() {
// will be called if a "A" gets found
number++; // increases count of "number"
return "1" // return will replace "A" with "1"
});
console.log(number) // result will be "2" (because "A" gots found 2times)
答案 2 :(得分:0)
var input = "A B C A";
function Replace(str) {
Counter();
return str.replace(/A/g, "1");
}
var increment = 0;
function Counter() {
increment++;
}
alert(Replace(input)); // 1 B C 1
alert(increment); // 2
应在return语句之前调用Counter()。