Javascript 未能根据预定义列表替换文本
我正在尝试创建一个函数,根据预定义的搜索词列表和应该替换的内容替换一组代码中的特定字符串Javascript 未能根据预定义列表替换文本,javascript,arrays,replace,replaceall,Javascript,Arrays,Replace,Replaceall,我正在尝试创建一个函数,根据预定义的搜索词列表和应该替换的内容替换一组代码中的特定字符串 render = (data,list) => { let temp = data; for(let i in list){ temp.split(i).join(list[i]); //temp.replace(new RegExp(i, 'g'), list[i]); even this doesn't work } return temp; } let test = ren
render = (data,list) => {
let temp = data;
for(let i in list){
temp.split(i).join(list[i]);
//temp.replace(new RegExp(i, 'g'), list[i]); even this doesn't work
}
return temp;
}
let test = render("<h1>a1</h1>",
{ "a1" : "Hello World" });
render=(数据,列表)=>{
设温度=数据;
对于(让我进入列表){
临时拆分(i)加入(列表[i]);
//temp.replace(新的RegExp(i,'g'),list[i]);即使这样也不起作用
}
返回温度;
}
让test=render(“a1”,
{“a1”:“你好,世界”});
我没有看到任何错误,它只是不替换任何内容并按原样返回原始数据,如果我单独使用用于替换的代码并手动将其放入regExp或split join函数中的值中,则效果很好
//编辑
预期的输入和输出应为
let temp = "<h1> $1 </h1>";
console.log( render(test, { "$1":"Hello World" } ) );
let temp=“$1”;
log(render(test,{“$1”:“helloworld”});
这应该是输出
<h1> Hello World </h1>
你好,世界
但我却得到了
<h1> $1 </h1>
1美元
原来如此。这是解决方案-
render=(数据,列表)=>{
设温度=数据;
对于(让我进入列表){
临时=临时替换(新的RegExp(i,'g'),列表[i]);
}
返回温度;
}
让test=render(“a1”{
“a1”:“你好,世界”
});
控制台日志(测试)代码>以下是解决方案-
render=(数据,列表)=>{
设温度=数据;
对于(让我进入列表){
临时=临时替换(新的RegExp(i,'g'),列表[i]);
}
返回温度;
}
让test=render(“a1”{
“a1”:“你好,世界”
});
控制台日志(测试)代码>替换或连接不修改原始字符串修改通过参数获得的字符串的正确方法是什么?请详细说明..保存替换的结果
,并返回结果。请检查@Vivek的answerreplace或join不修改原始字符串修改通过参数获得的字符串的正确方法是什么?请详细说明..保存替换的结果
,并返回结果。请检查@Vivek的回答谢谢,它起作用了,你能解释一下它不起作用的原因吗?@AdarshHegdereplace
方法没有替换字符串,你必须将它重新分配回temp
-谢谢,它起作用了,您能解释一下它不工作的原因吗?@AdarshHegdereplace
方法没有替换字符串,您必须将其重新分配回temp
-