Replace keys in template string with object properties

I have an object like this.

var obj = {Id:1,Rate:5,Price:200,Name:"History"}

And a template like this.

var templateString = '<option id="{Id}">{Name}</option>'

I want to replace the template values with object values. How can i do this. I am no expert of javascript regular expressions.

The desired output

var optionString = '<option id="1">History</option>'

Fiddle Sample


Solution 1:

You can use replace with a callback :

var optionString = templateString.replace(/{(\w+)}/g, function(_,k){
      return obj[k];
});

Demonstration