替换为重复的字符串添加递增数字的方法

时间:2015-06-04 21:52:14

标签: javascript node.js methods replace

我有一个包含大量<a id="r"></a>标记的文档,并希望为每个标记添加递增编号,因此,<a id="r1"></a> ... <a id="r2"></a>等。我的循环目前有,似乎没有用。

function(doc) {
    for (var i = 1; i <= doc.length; i++) {
      var number = 1;
      return doc.replace(/<a id=""><\/a>/, '<a id="page' + number + '"></a>');
      number += 1
};},

4 个答案:

答案 0 :(得分:0)

如果你在循环中return,它将不会多次迭代。

答案 1 :(得分:0)

您在循环中设置了var number = 1;。您已经有一个i的整数,所以请使用+ i +,然后在循环中返回。

答案 2 :(得分:0)

我不认为你想要循环。尝试使用替换模式中的递增数字来执行全局正则表达式:

function(doc) {
    var number = 1;
    return doc.replace(/(<a\s+[^>]*id="r)("[^>]*>[^<]*<\/a>)/gi, function(m, a, b) {
        return a + (number++) + b;
    });
};

这会查找包含<A>的所有id="r"代码,保持其内容和属性相同,但会将r更改为r1r2,{ {1}}。这是你想要的吗?

答案 3 :(得分:0)

尝试在循环外声明number

function(doc) {
  var number=1;
  for (var i=1;i<=doc.length;i++) {
    return doc.replace(/<a id=""><\/a>/,'<a id=\"page'+number+'\"></a>');
    number+=1;
  }
},