使用数组元素进行搜索并使用javascript替换所有元素?
喂,我有一根绳子使用数组元素进行搜索并使用javascript替换所有元素?,javascript,arrays,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、 e.脚本运行后,输出字符串将 I am xyz1, my age is xyz2 and I live in xyz3,
'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、 e.脚本运行后,输出字符串将
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);
var myString='我是abc1,我的年龄是abc2,我住在abc3,abc1';
var myArray=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
对于(var i=0;i尝试这种方法
首先拆分keys/values
,得到一个新数组(keyValue
),其中包含新旧单词。然后我迭代keyValue
,并用它的值替换文本
var text='我是abc1,我的年龄是abc2,我住在abc3,abc1';
变量词=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
var keyValue=words.map(项=>{
var arr=item.split('/');
返回[arr[0],arr[1]];
});
keyValue.forEach(项=>{
text=text.replace(新的RegExp(项[0],'g'),项[1]);
});
console.log(text);
基本上你循环了太多的一个,取i
,你需要变量的值作为正则表达式
您可以使用构造函数并构建新的正则表达式对象
最后,您需要替换同一个字符串并将其分配给同一个字符串,否则您已经替换了该字符串,但您只能返回最后一个替换
var myString='我是abc1,我的年龄是abc2,我住在abc3,abc1',
myArray=['abc1/xyx1','abc2/xyx2','abc3/xyx3'],
i、 xs,new1,new2;
对于(i=0;i console.log(myString);
您可以使用符号对单词
数组进行迭代,并在每个循环中使用拆分元素w
来创建一个数组变量a
,使用两个索引元素创建正则表达式并调用:
var text='我是abc1,我的年龄是abc2,我住在abc3,abc1';
变量词=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
words.forEach(函数(w){
var a=w.分割('/');
text=text.replace(新的RegExp(a[0],'g'),a[1]);
});
console.log(text);
功能性方法:
var text='我是abc1,我的年龄是abc2,我住在abc3,abc1';
变量词=['abc1/xyx1','abc2/xyx2','abc3/xyx3'];
var结果=单词。减少((文本,单词)=>{
var[oldWord,newWord]=word.split('/');
返回text.replace(newregexp(oldWord'g'),newWord);
},文本);
console.log(result);
需要解决的一件事,我想,您是否可以稍微解释一下您的方法,我对javascript不太熟悉,所以不了解您的方法,我已经有一段时间没有看到您使用进行循环了。+1。