将字符串中的旧数组替换为新数组



我有一个var包含的字符串,我有一一个数组,其中包含名为oldWords的字符串中的单词,还有一个新数组,其中有名为newWords的新词。我想用字符串中的newWords替换oldWords,我已经尝试过用它进行循环,但它只返回替换了最后一个单词的字符串

代码:

let myStr = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sapien magna.",
old_Words = ["Lorem", "ipsum"],
new_Words = ["word1", "word2"];

for (let i = 0; i < old_Words.length; i++) {
var newStr = myStr.replace(old_Words[i], new_Words[i]);
}
console.log(newStr);

输出应该是:

"word1 word2 dolor sit amet, consectetur adipiscing elit. Fusce sapien magna."

在循环之前从let newStr = myStr;开始,然后在循环内部执行newStr = newStr.replace(...)

let myStr = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sapien magna.",
old_Words = ["Lorem","ipsum"],
new_Words = ["word1","word2"],
newStr = myStr;
for (let i = 0; i < old_Words.length; i++){
newStr = newStr.replace(old_Words[i], new_Words[i]);
}
console.log(newStr);

您可以用新单词替换所有出现的旧单词,如下所示:

注意:这也可以替换多次出现的单词。

let myStr = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor Fusce sapien magna.",
old_Words = ["Lorem","ipsum"],
new_Words = ["word1","word2"];

old_Words.forEach((oldWord, idx) => {
myStr = myStr.replace(RegExp(oldWord, 'g'), new_Words[idx])
});
console.log(myStr)

let myStr = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem Fusce ipsum sapien magna.",
old_Words = ["Lorem","ipsum"],
new_Words = ["word1","word2"];

old_Words.forEach((oldWord, idx) => {
myStr = myStr.replace(RegExp(oldWord, 'g'), new_Words[idx])
});
console.log(myStr)

最新更新