//一种简单快速的模板解析方法,活用with
var parseTpl = function( str, data ) {
var tmpl = 'var __p=[];' + 'with(obj||{}){__p.push(\'' +
str.replace( /\\/g, '\\\\' )
.replace( /'/g, '\\\'' )
.replace( /<%=([\s\S]+?)%>/g, function( match, code ) {
return '\',' + code.replace( /\\'/, '\'' ) + ',\'';
} )
.replace( /<%([\s\S]+?)%>/g, function( match, code ) {
return '\');' + code.replace( /\\'/, '\'' )
.replace( /[\r\n\t]/g, ' ' ) + '__p.push(\'';
} )
.replace( /\r/g, '\\r' )
.replace( /\n/g, '\\n' )
.replace( /\t/g, '\\t' ) +
'\');}return __p.join("");', func = new Function( 'obj', tmpl ); return data ? func( data ) : func;
};
//demo
var ong={
name:"caoke",
va:"va"
}
parseTpl("<%=va%><%for(var i=0;i<3;i++)%><%=i%>sfd<%=va%>",ong) //var __p=[];with(obj||{}){__p.push('',va,'');for(var i=0;i<3;i++)__p.push('',i,'sfd',va,'');}return __p.join("");

  

最新文章

  1. 子div设置float后导致父div无法自动撑开的问题
  2. 我的c++学习(11)数组和指针
  3. Android之listview &amp;&amp; adapter
  4. [转]全面理解Unity加载和内存管理
  5. xml json protobuf
  6. Learning Scrapy笔记(零) - 前言
  7. java继承实例。
  8. 用JavaScript(js)对时间格式化
  9. Esper
  10. CSS两端对齐
  11. Swift3集成极光推送
  12. C#Windows Form简易计算器实现(中)
  13. css中的相对定位与绝对定位
  14. 史上最全TensorFlow学习资源汇总
  15. nvm 查看node版本
  16. 库存盘点打印功能生成PDF速度太慢使用页面缓存
  17. Linux环境变量与文件查找
  18. Windows 7 64bit Python 2 Install
  19. chrome 浏览器调用 ocx 插件(二)
  20. 改变手机浏览器(iPhone/Android)上文本输入框的默认弹出键盘

热门文章

  1. 堡垒机(paramiko)
  2. p2150 [NOI2015]寿司晚宴
  3. Luogu 3241 [HNOI2015]开店
  4. SEO网站结构优化
  5. css总结3:Flex 布局教程:Flex-demos(转)
  6. Linq学习&lt;二&gt;
  7. java IO 管道流PipedOutputStream/PipedInputStream
  8. CreateExcel 导出Excel
  9. HTML5和CSS3实例教程 中文版 高清PDF扫描版
  10. Kotlin 区间的一些小注意