JS模板字符串的简单实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011350550/article/details/79596566

假设有字符串和对象如下

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 

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

猜你喜欢

转载自blog.csdn.net/u011350550/article/details/79596566