Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 若字符串包含对象键,则替换为相应的值jquery_Javascript_Jquery_Object_Replace_Key Value - Fatal编程技术网

Javascript 若字符串包含对象键,则替换为相应的值jquery

Javascript 若字符串包含对象键,则替换为相应的值jquery,javascript,jquery,object,replace,key-value,Javascript,Jquery,Object,Replace,Key Value,我有一个包含一些关键字的字符串,我希望能够用对象中的值替换它们 我的字符串: "I want to start the trip on {start_date} and return on {end_date}" 我希望能够用对象中的值替换{start\u date}和{end\u date}: let obj = {start_date: "2020-01-01", end_date: "2020-07-15"} 我希望我的声明是

我有一个包含一些关键字的字符串,我希望能够用对象中的值替换它们

我的字符串:

"I want to start the trip on {start_date} and return on {end_date}"
我希望能够用对象中的值替换
{start\u date}
{end\u date}

let obj = {start_date: "2020-01-01", end_date: "2020-07-15"}
我希望我的声明是:

"I want to start the trip on 2020-01-01 and return on 2020-07-15"

我还需要这是动态的,对象可以改变,字符串可以不同。我不知道该怎么做。

您可以连接管道上的所有键(
)来创建正则表达式,并使用对
字符串的回调来替换

let str=“我想在{start_date}开始旅行,并在{end_date}返回”
设obj={开始日期:“2020-01-01”,结束日期:“2020-07-15”};
函数escapeRegExp(字符串){
返回字符串.replace(/[.*+\-?^${}()\[\]\\]/g,\\$&');
}
让res=str.replace(新的RegExp(
Object.keys(obj.map)(str=>“{”+escapeRegExp(str)+“}”).join(“|”),“g”/*global*/),
match=>obj[match.slice(1,-1)]/*删除前导'{'和尾随'}'*/);

控制台日志(res)
您可以连接管道上的所有键(
|
)以创建正则表达式,并利用对
字符串的回调来替换

let str=“我想在{start_date}开始旅行,并在{end_date}返回”
设obj={开始日期:“2020-01-01”,结束日期:“2020-07-15”};
函数escapeRegExp(字符串){
返回字符串.replace(/[.*+\-?^${}()\[\]\\]/g,\\$&');
}
让res=str.replace(新的RegExp(
Object.keys(obj.map)(str=>“{”+escapeRegExp(str)+“}”).join(“|”),“g”/*global*/),
match=>obj[match.slice(1,-1)]/*删除前导'{'和尾随'}'*/);
控制台日志(res)
const string='我想在{start_date}开始旅行,并在{end_date}返回';
const obj={开始日期:'2020-01-01',结束日期:'2020-07-15'};
const result=string.replace(/{\w+}/g,key=>obj[key.slice(1,-1)]);
控制台日志(结果)
const string='我想在{start_date}开始旅行,并在{end_date}返回';
const obj={开始日期:'2020-01-01',结束日期:'2020-07-15'};
const result=string.replace(/{\w+}/g,key=>obj[key.slice(1,-1)]);
控制台日志(结果)
let sentence =
  "I want to start the trip on {start_date} and return on {end_date}";

let obj = { start_date: "2020-01-01", end_date: "2020-07-15" };

Object.keys(obj).forEach((key) => {
  if (sentence.includes(key)) {
    var regex = new RegExp(`{${key}}`, "g");
    sentence = sentence.replace(regex, obj[key]);
  }
});