我正在尝试将具有占位符的字符串替换为对象中的值
例如:
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>>
之间插入一些文字。
任何人都可以指导我的错误。提前谢谢。