首页 > 其他 > 详细

字符串模板编译

时间:2019-05-12 20:02:35      阅读:152      评论:0      收藏:0      [点我收藏+]
let template = `
<ul>
<% for(let i=0; i < data.supplies.length; i++) { %>
<li><%= data.supplies[i] %></li>
<% } %>
</ul>
`;
echo(‘<ul>‘);
for (let i = 0; i < data.supplies.length; i++) {
echo(‘<li>‘);
echo(data.supplies[i]);
echo(‘</li>‘);
};
echo(‘</ul>‘);

function compile(template) {
const evalExpr = /<%=(.+?)%>/g;
const expr = /<%([\s\S]+?)%>/g;

template = template
.replace(evalExpr, ‘`); \n echo( $1 ); \n echo(`‘)
.replace(expr, ‘`); \n $1 \n echo(`‘);

template = ‘echo(`‘ + template + ‘`);‘;
console.log(‘template=======‘ + template)
let script =
`(function parse(data){
let output = "";

function echo(html){
output += html;
}
${ template}
return output;
})`;
console.log(‘script==========‘, script)

return script;
}


console.log(‘compile(template)‘ + compile(template))

// let parse = eval(compile(template));
// div.innerHTML = parse({ supplies: ["broom", "mop", "cleaner"] });


// echo(‘<ul>‘);
// for(let i=0; i < data.supplies.length; i++) {
// echo(‘<li>‘);
// echo(data.supplies[i]);
// echo(‘</li>‘);
// };
// echo(‘</ul>‘);

字符串模板编译

原文:https://www.cnblogs.com/yayaxuping/p/10853416.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!