# 字符串模板

# 描述

手写ES6中字符串模板的实现

# 思路

使用正则表达式替换字符串模板中的变量

# 代码

/**
 * 模板字符串
 * @param template 字符串
 * @param data 对象
 **/
function render(template, data) {    
    const reg = /\{\{(\w+)\}\}/;     
    if (reg.test(template)) {        
        const name = reg.exec(template)[1];        
        template = template.replace(reg, data[name]);        
        return render(template, data); 
    }    
    return template; 
}


// 功能测试
var obj = {
    name: 'Aaron',
    age: 31
}
var greeting = "Hi, I'm {{name}}, I'm {{age}} years old."
render(greeting, obj);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
上次更新: 3/24/2022, 2:46:26 PM