我是一个 Javascript 菜鸟,在 javascript 中使用正则表达式来全局替换网页上的文本。很简单。
v = v.replace(/\Simon\b/g, "JS Noob");
我知道我可以用函数替换,但我无法让它工作:
v = v.replace(/\bSimon\b/g, function(replaceLoop) {
var myStringArray = ["herp","derp","clueless","hurrrrr"];
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++){
replaceLoop = myStringArray;
return replaceLoop;
}
}
我有一种感觉,我的想法是错误的。
最佳答案
第 1 步,创建一个每次从数组返回下一项的函数
function iterGen(arr, i) {
i || (i = 0);
return function () {
i %= arr.length;
return arr[i++];
};
}
第 2 步,将其传递给您的替换
v = v.replace(/\bSimon\b/g, iterGen(["herp","derp","clueless","hurrrrr"]));
关于Javascript全局字符串替换为数组中的不同元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041529/