gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:32:12 27 4
gpt4 key购买 nike

说,我有一个字符串

'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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com