ES6 模板编译
2024-08-30 12:42:37
顾名思义,就是用反引号编写一个模板字符串,
用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']});
最新文章
- JVM之内存结构
- AgilePoint实例属性修改
- jsp中的正则表达式
- c++ 中this底层
- CSS 中浮动的使用
- 几款常用Eclipse java插件
- 用JS的for循环打印九九乘法表
- android 中文 api (71) —— BluetoothServerSocket[蓝牙]
- 基于飞思卡尔i.MX 6Quad Sabrelite开发板的触摸屏调试
- JavaScript------for-in的使用方法
- JS/jQ常用宽高及应用
- Jetson TX2上的demo(原创)
- python读取txt、csv、xml
- 矩阵树Matrix-Tree定理与行列式
- Handler,MessageQueue Loop 和Message的原理解析
- 【BZOJ3236】【AHOI2013】作业 线段树 分治 树状数组
- jenkins构建完成后,执行的命令行的东西也会自动结束的解决办法
- [转]ubuntu ssh登陆显示系统信息
- Grooming Meeting及测试人员所扮演的角色
- 【Udacity并行计算课程笔记】- Lesson 3 Fundamental GPU Algorithms (Reduce, Scan, Histogram)