用于替换占位符变量值的Javascript

时间:2016-11-23 03:37:30

标签: javascript template-engine

我正在尝试将具有占位符的字符串替换为对象中的值

例如:

let contentString = `
    I, <<firstName>> <<lastName>>, born on <<DOB>> of <<flatNumber>> , <<houseNumber>>
`;


let data = {
  firstName: 'test_firstName',
  lastName: 'test_lastName',
  DOB: '10-12-1987',
  flatNumber: '3',
  houseNumber: '8'
};

function createTemplate(contentString, data) {
  let pattern = /<<(\w*?)>>/gm;


  while (matches = pattern.exec(contentString)) {

    contentString.replace(matches[1], function replacer(match) {
      console.log(match);
      //contentString = contentString.replace(match, data[match]);
    });

  }

  console.log(contentString);


}

createTemplate(contentString, data);

replacer回调函数中的console.log函数提取所有值,例如firstName,lastName,DOB,flatNumber和houseNumber。

但是,一旦我取消注释下一行代码字符串替换,尽管firstName被值替换,<<lastName>>永远不会被替换。

然而,如果我将contentString更改为

之类的东西
let contentString = `
    I, <<firstName>> asnasas  <<lastName>>, born on <<DOB>> of <<flatNumber>> , <<houseNumber>>
`;

<<firstName>><<lastName>>之间插入一些文字。

任何人都可以指导我的错误。提前谢谢。

0 个答案:

没有答案