如何将字符串 {} 值替换为 obj(键值)

Saw*_*mar 5 javascript json node.js

我最近开始在 nodeJs 上编程。

我有不同的字符串和 Json 对象;

例如:

var str = 'My name is {name} and my age is {age}.';
var obj = {name : 'xyz' , age: 24};


var str = 'I live in {city} and my phone number is {number}.';
var obj = {city: 'abc' , number : '45672778282'};
Run Code Online (Sandbox Code Playgroud)

我如何自动执行此过程,因此使用 string 和 obj 我会将 string {} 值替换为 obj(键值)。

我试过 PUG 但无法解析。

pug.render(str, obj);
Run Code Online (Sandbox Code Playgroud)

对我不起作用。

Han*_*ian 2

让我们看看,您想要制作类似模板的东西,就像车把http://handlebarsjs.com/一样。

我将给你这个例子来为你的情况制作一个简单的把手:

function render(template, properties)
{
     var result = template;
     for (i in properties)
     {
         result = result.replace("{"+i+"}",properties[i]);
     }
     return result;
}
Run Code Online (Sandbox Code Playgroud)

但这只会更改相应属性的第一次出现,如果您愿意,可以使用它来替换整个模板中的所有属性:

function render(template, properties)
{
     var result = template;
     for (i in properties)
     {
         var reg = new RegExp("{"+i+"}","g");
         result = result.replace(reg,properties[i]);
     }
     return result;
}
Run Code Online (Sandbox Code Playgroud)