我有一个像这样的对象。
var obj = {Id:1,Rate:5,Price:200,Name:"History"}
这样的模板。
var templateString = '<option id="{Id}">{Name}</option>'
我想用对象值替换模板值。我怎样才能做到这一点。我不是javascript正则表达式的专家。
所需的输出
var optionString = '<option id="1">History</option>'
答案 0 :(得分:13)
您可以将replace
与回调一起使用:
var optionString = templateString.replace(/{(\w+)}/g, function(_,k){
return obj[k];
});
答案 1 :(得分:0)
如果它只出现一次,这对你有用
var optionString = templateString.replace('{Id}',obj.Id).replace('{Name}',obj.Name)
答案 2 :(得分:0)
不使用正则表达式,可以通过使用Object.keys
查找对象的所有属性,然后用其值替换每个属性来实现。
尝试这样:
Object.keys(obj).forEach(key => {
templateString = templateString.replace(`**${key}**`, `"${obj[key]}"`);
});