Javascript - 计算JavaScript中替换字符串的数量?

时间:2018-03-18 11:20:59

标签: javascript regex

如何在Javascript中正确计算替换字符串的数量。由于某种原因,下面的增量函数给了我" 0"而不是" 2"。

JSfiddle

  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

3 个答案:

答案 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()。