我有一个文本,我想用不同的值替换所有字母“ A”。我有一个数组[“ b”,“ c”,“ d”],我想将第一个找到的“ A”替换为“ b”,第二个替换为“ c”,依此类推。任何人,请帮助。这是我正在尝试并得到的东西
var str = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
var a = ["b", "c", "d"];
var c = str.replace(/a/g, a);
console.log(c);
答案 0 :(得分:2)
您可以对索引进行封闭处理,并增加索引并根据数组的长度进行调整。
var str = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
a = ["b", "c", "d"];
c = str.replace(/a/g, (i => () => a[i++ % a.length])(0));
console.log(c);
答案 1 :(得分:1)
您可以保留索引并在每次使用时对其进行调整。 (我将值大写以方便在结果中找到它们。
var str = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
var a = ["b", "c", "d"];
var index = -1;
var c = str.replace(/a/g, function(){
return a[++index % a.length].toUpperCase();
});
console.log(c);