三行JS代码实现 简单的模版引擎算法 面试常考
发布日期:2022-02-10 13:35:49 浏览次数:21 分类:技术文章

本文共 468 字,大约阅读时间需要 1 分钟。

前端的面试或者校招中经常会问到的一道简单的算法题:

模版引擎(给你一段模版代码,给你一个对象;转换出来html代码格式)

下面是正则实现的(借鉴大佬的代码)

代码如下:

var template='

sd,<%page%>,hello,<%w%>

'var data={ page:'yes', w:'world'}var reg=/<%([^%>]+)?%>/g;while(mat=reg.exec(template)){ template=template.replace(mat[0],data[mat[1]]);}

具体原理

reg的这行正则的意思就是匹配出来关于<%和%>中间的内容。结尾的g是不仅匹配一次的意思,输出mat的内容是这样子的:

两个数组,第一行是匹配到的内容,第二行是你想要的内容,所以mat[0]==='<%page%>'; mat[1]='page';

之后用replace进行替换,将data的属性赋值过去就完成了;

有帮助的话点个赞,非常感谢!

复杂一些的推荐看这篇文章的优化部分;

转载地址:https://blog.csdn.net/zoooo_/article/details/109245599 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:elementUi的tree组件动态设置展开折叠失效
下一篇:报错Can‘t resolve ‘fs‘ in /Cannot read property ‘prototype‘ of undefined

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月19日 19时40分16秒