Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未能根据预定义列表替换文本_Javascript_Arrays_Replace_Replaceall - Fatal编程技术网

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的回答谢谢,它起作用了,你能解释一下它不起作用的原因吗?@AdarshHegde
replace
方法没有替换字符串,你必须将它重新分配回
temp
-谢谢,它起作用了,您能解释一下它不工作的原因吗?@AdarshHegde
replace
方法没有替换字符串,您必须将其重新分配回
temp
-