我是在Javascript中使用正则表达式来全局替换网页上文本的Javascript noob。很简单。

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;
    }
}


我觉得我在想这一切错。

最佳答案

快速语法错误导致出现问题,您错过了);.replace()的结尾。另外,您正在设置replaceLoop = myStringArray而不是特定的字符串。假设您想要一个随机索引,则需要Math.random()

v = v.replace(/\bSimon\b/g, function(replaceLoop) {
    var myStringArray = ["herp","derp","clueless","hurrrrr"];
    var arrayLength = myStringArray.length;
    var index = Math.floor(Math.random() * arrayLength);

    return myStringArray[index];
});

09-25 18:28