我正在研究一个非常的基本模板系统并且正在努力。
拿这个:
some useless text here but i want to replace %% this %% with the variable: object.this
这似乎很容易,但我无法弄清楚。这是我的代码:
function loadTemplate(element, object) {
var regex = /%% (.*) %%/;
return $(element).html().replace(regex, eval("object.$1"));
}
我尝试了一些不同的东西。目前,eval返回undefined
。当我尝试eval("$1")
时,它会给我一个未被捕获的引用错误,并告诉我$1
未定义。
答案 0 :(得分:3)
您不需要eval
,因为replace
需要回调函数;在那里做你的逻辑。第一个参数是匹配的子字符串,第二个参数是第一个捕获组匹配。使用括号表示法,您可以使用字符串动态访问对象的键:
.replace(regex, function(_, a) {
return object[a];
});