字符串模板替换
例如:let str = 我的名字叫{{name}},我今年{{}}岁了
,let obj = {name:“wucr”,age:“18”}
function render(str,obj){
str = str.replace(/{{(.?*)}}/g,(match,key) => obj[key.trim()])
}
下面来说下replace
str.replace(/{{(.?*)}}/g,function(match,key,index,source){
console.log(arguments);
return obj[key] // return 会替换匹配到的match
})
- match是匹配到的一个字符串以上示例中为{{name}}和{{age}}
- key 是捕获分组中的内容,没有分组不存在,正则表达式()代表一个分组
- index是匹配到的索引下标
- source是原来的字符串
- 非贪婪匹配 .?*