javascript template engine
1822 단어 JavaScript
//var data = {name: "iflytek", year: 1999};
/**********************************************/
var getTpl = function(tpl,data){
var re = /<%([^%>]+)?%>/g;
while (match = re.exec(tpl)) {
tpl = tpl.replace(match[0], data[match[1]]);
}
return tpl;
}
/**********************************************/
var TemplateEngine = function (tpl, data) {
var reg = /<%([^%>]+)?%>/g,
reExp = /(^( )?(if|for|else|{|}))(.*)?/g,
code = 'var r=[];
',
cursor = 0;
var add = function (line, js) {
code += js ? line.match(reExp) ? line + '
' : 'r.push(' + line + ');
'
: 'r.push("' + line.replace(/"/g, '\\"') + '");
';
}
while (match = reg.exec(tpl)) {
add(tpl.slice(cursor, match.index));
add(match[1], true);
cursor = match.index + match[0].length;
}
add(tpl.slice(cursor, tpl.length));
code += 'return r.join("");';
return new Function(code.replace(/[\r\t
]/g, '')).apply(data);
}
//var loopTpl = 'name:<%this.info.name%>,site:<%this.info.site%>,building:<%for(var index in this.building){%><h5><%this.building[index]%> </h5><%}%>';
//var data = {info:{name:'iflytek',site:'http://www.iflytek.com'},building:['A1','A2']};
//var str = TemplateEngine(loopTpl,data);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.