js replace替换问题

var arr = ['a','b','c','d'];
var t = "<img src='' id='111'><img src='' id='man'><img src='' id='is'><img src='' id='u'>";

如何把 t 变成 "<img src='' id='a'><img src='' id='b'><img src='' id='c'><img src='' id='d'>"

阅读 2.7k
3 个回答

我照着你上一个问题的直接改一下就可以了

我这么理解题意,就是字符串里的id依次改成arr数组里对应的元素,那么在全局正则匹配的时候,在外部用一个变量标识数组的索引,每次替换就自增1,就可以了。

var arr = ['a','b','c','d'];
var i = 0;
var t = "<img src='' id='good'><img src='' id='man'><img src='' id='is'><img src='' id='u'>";
    t = t.replace(/id='(\w*)'/g,function(match,$1,index){
            console.log(match,$1,index);
            
            return "id='"+ arr[i++]+"'";
    })
var i = 0
t.replace(/id='\w+'/g, function() {
    return `id='${arr[i++]}'`
})
    var arr = ['a','b','c','d'];
    var t = "<img src='' id='111'><img src='' id='man'><img src='' id='is'><img src='' id='u'>";
    var ts = t.split(">");
    console.log(ts.length);
    for(var i =0; i<ts.length-1; i++) {
        ts[i] = ts[i].replace(/id=\'.+\'/gi,"id='"+arr[i]+"'");
        console.log(ts[i]);
    }
    var result = ts.join(">");
    console.log(result);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题