javascript - 使用数组元素进行搜索并使用 javascript 替换所有元素?

标签 javascript arrays

说,我有一个字符串

'I am abc1, my age is abc2 and I live in abc3, abc1'

和看起来像的数组

['abc1/xyx1', 'abc2/xyx2', 'abc3/xyx3']

我正在尝试以下面的方式使用数组的每个元素对字符串进行搜索并全部替换

replace abc1 by xyz1, abc2 by xyz2 etc..

即脚本运行后输出字符串将是

I am xyz1, my age is xyz2 and I live in xyz3, xyz1

这是我目前为止尝试过的

var myString = 'I am abc1, my age is abc2 and I live in abc3, abc1';
var myArray = ['abc1/xyx1', 'abc2/xyx2', 'abc3/xyx3'];
for (var i=0; i<=myArray.length; i++){
var a1 = myArray[i];
var xs = a1.split("/");
var new1=xs[0];
var new2=xs[1];
var replaced = myString.replace(/new1/g, new2);
}
document.write(replaced);

但它不起作用。有人可以帮忙吗?

最佳答案

基本上你循环太多了,拿i < myArray.length并且您需要变量的值作为正则表达式。

您可以使用构造函数并构建一个新的正则表达式对象。

最后,你需要替换同一个字符串并赋值给同一个字符串,否则你已经替换了,但是你只得到最后一个替换回来。

var myString = 'I am abc1, my age is abc2 and I live in abc3, abc1',
    myArray = ['abc1/xyx1', 'abc2/xyx2', 'abc3/xyx3'],
    i, xs, new1, new2;

for (i = 0; i < myArray.length; i++) {
    xs = myArray[i].split("/");
    new1 = xs[0];
    new2 = xs[1];
    myString = myString.replace(new RegExp(new1, 'g'), new2);
}

console.log(myString);

关于javascript - 使用数组元素进行搜索并使用 javascript 替换所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45817130/

相关文章:

javascript - 谁能告诉我是否可以使用 javascript 生成 PDF 文件?

javascript - tinymce弹出窗口中的复选框

c++ - "Subscript needs array or pointer type"?和功能?

java - 将字符串数组转换为列表 : double brackets

c - Malloc 不会对超过 8 个输入进行排序

javascript - Node.js 从 const 导出函数

javascript - knockout 验证异步验证器 : Is this a bug or am I doing something wrong?

javascript - 如何存储变量以供其他 jQuery 脚本在页面上使用。

c - 这段代码的输出是什么,数组和指针

Java对象数组IO