说,我有一个字符串
'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/