js模板
来源:互联网 发布:电脑上看淘宝直播 编辑:程序博客网 时间:2024/05/19 10:34
function Template(left,right){ var LEFT = left || '<%'; var RIGHT = right || '%>'; var _arguments = null; var _params = []; this.render = function(tpl, data){ _arguments = arguments; tpl = tpl.replace(/\r\n|\r|\n|\t/g,''). //去除注释 replace(/(<\!\-\-.*[^(?:\-\->)]\-\->)/g,''). //转义双引号 replace(/"/g,'\\"'). //处理限定符之内的内容 replace(new RegExp(LEFT+'.*?[^('+RIGHT+')]'+RIGHT,'ig'),function(val){ return val.replace(/\\"/g,'"'). replace(RIGHT,'_temp_arr.push("'). replace(new RegExp(LEFT+'(?!=)','img'),'");'); }). //数据输出 replace(new RegExp('(' + LEFT + '\s{0,}=)(\s{0,}.*?\s{0,})(_temp_arr)', 'img'), '" +$2); _temp_arr') + '"); return _temp_arr.join("");'; tpl = 'var _temp_arr = []; _temp_arr.push("' + tpl; if(_arguments.length == 1){ return tpl; } if(_arguments.length == 2){ return new Function('datas',tpl)(data); } return createFunction(tpl); } //自定义变量名,数组形式['arg1','arg2',...],值与render(tpl,'arg1的实际值','arg1的实际值',...)对应, this.setParams = function(params){ _params = params; return this; } function createFunction(tpl){ var size = _arguments.length; var argsName = []; var args = []; for(var i=1; i<size; i++){ var param = _params[i-1] || ('arg'+i); argsName.push('\"'+param+'\"'); args.push('args['+i+']'); } var content = 'return new Function('+argsName.join(',')+',tpl)('+args.join(',')+');'; return new Function('tpl','args',content)(tpl,_arguments); }}
0 0
- js模板
- js模板引擎-arttmpl.js
- “EasyTemplate” JS模板引擎
- JS+HTML5 游戏模板
- 前端JS模板
- 浅析js模板引擎
- jsreader js模板框架,
- JS OO模板
- Underscore.js-template模板
- TrimPath - Js模板引擎
- js模板引擎介绍
- JS模板引擎
- doT js模板入门
- JS模板引擎 :ArtTemplate
- javascript模板-ICanHaz.js
- 模板(Ext.js)
- js模板引擎
- Handlebars.js 模板引擎
- 管理心理学第四讲.目标管理心理学 之一
- 技术揭秘12306改造(一):尖峰日PV值297亿下可每秒出票1032张
- Linux命令格式及帮助命令详解
- 十张图,让你看懂互联网企业与传统企业思维的本质区别
- 各个国家所对应的字符集列表
- js模板
- 将CSV格式文件导入SQLSERVER数据库
- 【BZOJ 1085】 [SCOI2005]骑士精神
- gitbook mac 版本的安装
- android ADB命令的使用
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- (收藏)《博客园精华集》分类索引
- Preferencescreen中利用intent跳转activity
- 命令设计模式