Javascript全局字符串替换为数组中的不同元素?

标签 javascript regex string replace

我是一个 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/

相关文章:

python - 如何使用python通过正则表达式输出大写字母

Python 正则表达式子组捕获

c++ - 就时间复杂度而言,可以更快地找到另一个字符串中的最小周期字符串吗

c++ - 文件输入,尝试从字符串中提取 Int (C++)

java - 在什么情况下scala正确地将String转换为java.lang.String

javascript - 是否存在具有三个不同值的数据类型,例如 bool 值

javascript - 如果是周末则更改日期的功能

javascript - 使用 System.IdentityModel.Tokens.Jwt 验证在 C# 中生成的 token

javascript - 获取 HTML 数据以更快地加载页面 - Opera Turbo

java - 如何替换文件名中的非法字符?