varTemplateEngine=function(html, options){var re =/<%([^%>]+)?%>/g, reExp =/(^( )?(if|for|else|switch|case|break|{|}))(.*)?/g, code ='var r=[];\n', cursor =0;var add =function(line, js){
js?(code += line.match(reExp)? line +'\n':'r.push('+ line +');\n'):(code += line !=''?'r.push("'+ line.replace(/"/g,'\\"')+'");\n':'');return add;}while(match = re.exec(html)){
add(html.slice(cursor, match.index))(match[1],true);
cursor = match.index + match[0].length;}
add(html.substr(cursor, html.length - cursor));
code +='return r.join("");';returnnewFunction(code.replace(/[\r\t\n]/g,'')).apply(options);}
原理可以看源文 http://tech.pro/tutorial/1743/javascript-template-engine-in-just-20-lines