文章结构
使用的知识点
1、String.replace()
2、eval()
function Analyze(str, data) {
return str.replace(/\$\{(.+?)\}/g, (match, key) => {
if (typeof data[key] !== "function") {
return eval("data[key]");
} else {
return data[key]();
}
});
}
/* 测试功能点:
1、可以解析变量
2、可以保留空格
3、可以执行函数
4、可以执行三元表达式
*/
var obj = {
a: 1,
c: function() {
return "懒羊羊:沸羊羊你个臭傻逼";
},
d: true ? 'true' : 'false'
};
var str = "a的值是${a}, b的值是${b},${c},${d}";
var result = Analyze(str, obj);
console.log(result); //a的值是1,b的值是undefined,懒羊羊:沸羊羊你个臭傻逼,true