简单的模板引擎实现机理,利用正则表达式中的replace()方法


// 最简单的模板引擎实现机理,利用的是正则表达式中的replace()方法
// replace()的第二个参数可以是一个函数,这个函数的第二个参数提供捕获的东西,就是$1
// 结合data对象,即可进行智能的替换
var templateStr = '

我买了一个{{thing}},花了{{money}}元,好{{mood}}

' var data = { thing: '风车', money: 100, mood: '开心' } function render(templateStr,data){ return templateStr.replace(/\{\{(\w+)\}\}/g,function(findStr,$1){ // 不能打点,不能写成data.[$1],变量不能被对象打点 return data[$1] }) } var result = render(templateStr,data) console.log(result)