如何用JavaScript实现一个简单的模板引擎

来源:菜鸟站长作者:小师妹头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何用JavaScript实现一个简单的模板引擎》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何用JavaScript实现一个简单的模板引擎》有用,将其分享出去将是对创作者最好的鼓励。

模板引擎的作用是把带有变量的模板字符串和具体数据结合,生成最终的HTML文本。用JavaScript实现一个简单版本,并不需要复杂的语法解析,借助字符串和正则表达式就能完成。

如何用JavaScript实现一个简单的模板引擎

一、模板的基本形式

我们约定模板中使用双大括号来表示变量,例如 <h1>{{title}}</h1>。其中的 title 会在渲染时被真实数据替换。

二、核心实现思路

实现分为三步:

  • 接收模板字符串和数据对象
  • 用正则找到所有 {{key}} 形式的占位符
  • 将占位符替换为数据中对应的值

三、代码实现

下面用函数封装一个最基础的渲染方法:

// 简单模板引擎函数
function render(template, data) {
  // 正则匹配 {{key}} 形式,捕获 key 部分
  return template.replace(/{{s*(w+)s*}}/g, function(match, key) {
    // 如果 data 中有该属性就替换,否则留空
    return data.hasOwnProperty(key) ? data[key] : '';
  });
}

// 使用示例
var tpl = '<div>你好,{{name}}!今天是{{day}}。</div>';
var data = { name: '小明', day: '星期一' };
var html = render(tpl, data);
console.log(html); // <div>你好,小明!今天是星期一。</div>

四、支持简单逻辑

如果希望在模板里写判断,可以把模板编译成函数。思路是用 new Function 把字符串变成可执行代码:

function compile(template) {
  // 把 {{key}} 转成拼接字符串的形式
  var code = 'var str = ''; str += '' +
    template.replace(/{{s*(w+)s*}}/g, '' + data.$1 + '') +
    ''; return str;';
  return new Function('data', code);
}

var tpl = '<p>用户名:{{user}}</p>';
var renderFn = compile(tpl);
console.log(renderFn({ user: 'admin' })); // <p>用户名:admin</p>

五、小结

上面两种方式分别适合不同场景:直接替换写法简单,适合纯展示;编译成函数性能更好,也方便扩展逻辑。理解这些原理后,你再看主流框架的模板编译过程就不会觉得神秘了。

JavaScript模板引擎正则替换修改时间:2026-07-26 15:27:17

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。