var Template = function(template, pattern){
this.template = String(template);
this.pattern = pattern || Template.Pattern;
}
Template.Pattern = /#\{([^}]*)\}/mg;
Template.trim = String.trim || function(str){
return str.replace(/^\s+|\s+$/g, '')
}
Template.prototype ={
constructor:Template,
compile: function(object) {
return this.template.replace(this.pattern, function(displace,variable){
variable = Template.trim(variable)
return displace = object[variable]
});
}
}
var data = "<div>Name: <b>#{name}</b> Blog: <a href='#{href}'>#{blog }</a></div>";
var t = new Template(data);
var objs = {name:"mark",
blog:"RubyLouvre",
href:"http://www.cnblogs.com/rubylouvre/"}
var result = t.compile(objs);
alert(result)