news 2026/6/23 17:04:17

实现template方法,替换模板中的变量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实现template方法,替换模板中的变量

问题:实现template方法,替换模板中的变量

consttpl=`<p> hello, my name is <%= name%>, my age is <%= age %>`letdata={name:'jerry',age:18}letresult=template(tpl,data)console.log(result)//输出<p> hello, my name is jerry my age is 18

实现:replace方法,正则匹配

  • 简单替换:str.replace(匹配规则, 替换值);
  • 函数替换:str.replace(匹配规则, 回调函数);
    // 用正则表达式匹配所有占位符,然后对每个匹配项执行回调函数,返回最终要替换的值。

(\w+) 捕获组(关键部分):

  • \w 匹配字母、数字、下划线([a-zA-Z0-9_]);
  • '+'表示匹配 1 个或多个(确保变量名至少有 1 个字符);
  • 用 () 包裹表示 “捕获”,后续回调函数能获取到这个匹配的变量名。

// match是匹配到的<%= name %>, 是被替换的目标;
// key是通过(\w+)捕获到的分组内容,如 name ;
// 回调函数的返回值会替换掉match对应的内容。

functiontemplate(tpl,data){returntpl.replace(/<%=\s*(\w+)\s*%>/g,(match,key)=>{returndata[key]??''//从data中取值,如果不存在则返回空字符串})}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 7:44:24

GSE宏编译器:魔兽世界玩家的技能循环自动化神器

GSE宏编译器&#xff1a;魔兽世界玩家的技能循环自动化神器 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on test coverage and the Cur…

作者头像 李华
网站建设 2026/6/22 20:22:43

DeeplxFile:突破文件翻译限制的终极解决方案

还在为文档翻译发愁吗&#xff1f;&#x1f629; 当其他翻译工具告诉你"文件太大"或"不支持Excel"时&#xff0c;DeeplxFile正在默默打破这些限制&#xff01;这款基于Deeplx和Playwright的开源工具&#xff0c;让免费、无限制的文件翻译成为现实。 【免费…

作者头像 李华
网站建设 2026/6/18 19:55:30

针对机械设备行业一体化项目制管理解决方案

对于机械设备工厂&#xff0c;管理中的挑战主要体现在内部流程的协调与效率、成本的控制&#xff0c;以及对定制化生产的管理上。机械设备行业专业的管理软件&#xff0c;正是为了针对性解决这些问题而设计的。机械设备工厂的管理痛点机械设备工厂的管理挑战复杂且具体&#xf…

作者头像 李华
网站建设 2026/6/17 4:57:31

【量子编程数据同步新突破】:如何在Q#和Python间无缝传递变量?

第一章&#xff1a;Q#-Python 变量同步概述在量子计算与经典计算混合编程的场景中&#xff0c;Q# 与 Python 的协同工作变得愈发重要。变量同步是实现两者高效交互的核心机制之一&#xff0c;它允许 Q# 编写的量子操作与 Python 管理的经典数据之间进行无缝传递和状态共享。变量…

作者头像 李华
网站建设 2026/6/23 1:01:13

Java后端开发常见报错及解决方案:小白与大牛的问答故事

Java后端开发常见报错及解决方案&#xff1a;小白与大牛的问答故事 在学习Java后端开发过程中&#xff0c;遇到各种报错和Bug是常有的事。本文通过小白与资深Java大牛的对话方式&#xff0c;分享常见问题及解决方案&#xff0c;助你快速成长。第一轮问答 小白: 我在使用HashMap…

作者头像 李华