javascript - 不使用原生的replace()方法替换JS数组中的字符串

标签 javascript jquery regex

我在替换 js 数组中的字符串时遇到了一些困难。我正在尝试记录参数以查看发生了什么,但缺少一 block 拼图。

fiddle

// - trying to look for substring in array 
// - if match is found 
// - replace substring without using the native method replace();

var div = $('.insert');

data = ["erf,", "erfeer,rf", "erfer"];
data = data.map(function (x) {
    return /""/g.test(x) ? x.replace(/""/g, "") : x
});

function fakeReplace(data, substr, newstr) {

//should show   ["erf,", "erfeer,rf", "erfer"];      
div.append("data before match replace = " + data);

    div.append("\<br>");
    div.append("substr = " + substr);
    div.append("\<br>");
    div.append("newstr = " + newstr);
    div.append("\<br>");

    return data.split(substr).join(newstr);
}

fakeReplace(data, "erf", "blue");

//should show ["blue,", "blueeer,rf", "blueer"];
div.append("data after fakeReplace is executed = " + data);

最佳答案

您将data视为函数中的字符串。您可以使用 map() 返回一个替换了每个元素的新数组。

function fakeReplace(data, substr, newstr) {
    return data.map(function(s) {
       return s.split(substr).join(newstr);
    })
}

关于javascript - 不使用原生的replace()方法替换JS数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32018739/

相关文章:

Google 协作平台上的 JavaScript Accordion (经典)

javascript - 如何在jquery中获取时间戳的分钟数

javascript - 单击父 div 触发复选框提交?

javascript - 将我的 Jquery 幻灯片放映到全屏?

regex - 如何在不编译每个表达式的情况下从正则表达式中提取不同的变量

regex - 如何编写 perl if 语句来测试使用正则表达式找到字符串的次数?

javascript - slider 高度图像

javascript - SwiperJS - 上一个和下一个按钮不起作用

javascript - Ajax 请求不断翻倍

javascript - 正则表达式匹配javascript中的特定字符串