JS模板字符串的简单实现

假设有字符串和对象如下

let templateStr = 'i am {{name}},age {{age}},job {{job}} ';
let data = {
    name:'xbd',
    age:18,
    job:'CTO'
}

设计函数templateFunc(str,data),函数处理后的结果为

console.log(templateFunc(str,data));
//i am xbd,age 18,job CTO 

即将字符串中的{{key}}替换为data[key],可以利用String.replace()函数实现。replace函数非常强大,常用功能就是实现字符串替换等等。
1、替换字符串中的字符串,第一个参数是一个字符串,第二个参数是要替换的字符串。

let testString = 'study the replace function of javascript';
//只替换了第一个a
console.log(testString.replace('a','A'));

2、第一个参数是正则表达式,第二个参数要替换的字符串

let testString = 'study the replace function of javascript';
console.log(testString.replace(/a/g,'A'));

3、第二个参数可接收一个函数,这个功能非常强大,我们也是利用这个函数实现本文开始的那个函数,函数如下:

let templateStr = 'i am {{name}},age {{age}},job {{job}} ';
function templateFunc(str,data){
         let computed = str.replace(/\{\{(\w+)\}\}/g,function (match,key) {
           return data[key];
         })
         return computed;
       }
console.log(templateFunc(templateStr,data));
//i am xbd,age 18,job CTO 

到这,就完成了模板字符串的简单实现。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值