顾名思义,就是用反引号编写一个模板字符串,

用echo将模板转为javascrip表达式字符串,

用正则将基础字符串转为想要字符串

将代码封装在函数中返回;

注:

用到es6属性${}

var template=`

<ul>

<%for(var i=0;i<data.supplies.length;i++){%>

<li><%=data.supplies[i]%> </li>

<%}%>

</ul>`;

function compile(template){

var  reg1=/<%=(.+?)%>/g;

var reg2=/<%([\s\S]+?)%>/g;

template=template

.replace(reg1,'`);\n echo($1); \n echo(`')

.replace(reg2,'`);\n  $1 \n echo(`');

template='echo(`'+template+'`)';

var script=`

(function parse(data){

var outpput='';

function echo(html){

output+=html

}

${template}

return output;

)}`

return script

}

var parse=eval(compile(template));

div.innerHTML=parse({supplies:['1',,'2','3']});

最新文章

  1. JVM之内存结构
  2. AgilePoint实例属性修改
  3. jsp中的正则表达式
  4. c++ 中this底层
  5. CSS 中浮动的使用
  6. 几款常用Eclipse java插件
  7. 用JS的for循环打印九九乘法表
  8. android 中文 api (71) —— BluetoothServerSocket[蓝牙]
  9. 基于飞思卡尔i.MX 6Quad Sabrelite开发板的触摸屏调试
  10. JavaScript------for-in的使用方法
  11. JS/jQ常用宽高及应用
  12. Jetson TX2上的demo(原创)
  13. python读取txt、csv、xml
  14. 矩阵树Matrix-Tree定理与行列式
  15. Handler,MessageQueue Loop 和Message的原理解析
  16. 【BZOJ3236】【AHOI2013】作业 线段树 分治 树状数组
  17. jenkins构建完成后,执行的命令行的东西也会自动结束的解决办法
  18. [转]ubuntu ssh登陆显示系统信息
  19. Grooming Meeting及测试人员所扮演的角色
  20. 【Udacity并行计算课程笔记】- Lesson 3 Fundamental GPU Algorithms (Reduce, Scan, Histogram)

热门文章

  1. 《从零开始搭建游戏服务器》MySQL安装配置
  2. HTML5 这些你全知道吗?
  3. 上手ReactiveCocoa之基础篇
  4. python实现网速控制,限制上传下载速度
  5. python把日期转换为秒数;日期转为字符串;datetime、date
  6. 反混淆:恢复被OLLVM保护的程序
  7. Classification and logistic regression
  8. vim调用python格式化json数据
  9. Java 实现原型(Prototype)模式
  10. Screen 状态栏配置