1. 程式人生 > >JS模板字串的簡單實現

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

到這,就完成了模板字串的簡單實現。