实现一个模板解析函数

  • 描述:

    使用 js 编写程序,将 双花括号内的数据替换成真实数据

  • 示例:

    let template = '我是{{name}},年龄{{age}},性别{{sex}}';
    let data = {
        name: '姓名',
        age: 18
    }
    
    1
    2
    3
    4
    5
  • 实现:

    1. 利用 while 循环替换数据
    function render (temp,data) {
        const reg = /\{\{(\w+)\}\}/
        while (reg.test(temp)) {
            let param = reg.exec(temp)[1]
            temp = temp.replace(reg,data[param])
        }
        return temp
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    1. 利用递归替换数据
    function render (temp,data) {
        const reg = /\{\{(\w+)\}\}/
        if (reg.test(temp)) {
            const param = reg.exec(temp)[1]
            temp = temp.replace(reg,data[param])
            return render(temp,data)
        }
        return temp
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
  • 结果:

上次更新: 9/25/2019, 9:54:29 AM