几天前我写了一个简单的模板函数,现在的问题是空格会杀死标签。因此,当我输入这样的内容时:<div id="str">#{my} #{name} #{is} #{#{a}}</div>
效果很好,但是以下内容却不行:<div id="str">#{my} #{name} #{is} #{ #{a} }</div>
.
这是我到目前为止所做的:
$.tmpl = function(str, obj) {
do {
var beforeReplace = str;
for(var key in obj) {
str = str.replace("#{" + key + "}", obj[key]);
}
var afterReplace = str !== beforeReplace;
} while (afterReplace);
return str;
};
var map = {
my: "Am",
name: "I",
is: "<a href='#'>awesome</a>",
a: "#{b}",
b: "c",
c: "?"
};
$("#str").html(function(index, oldhtml) {
$(this).html( $.tmpl(oldhtml, map) );
});
#{a}
如果我使用and ,我怎样才能让它工作#{ #{a} }
。我知道,这是可能的,甚至很简单,但是我不是正则表达式专家。
这行得通。
这失败了。