我有一个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)