序言
昨天在面试gitlab的时候,有一个模板字符串匹配的问题,但是奈何自己的正则学的太差了,所以写的效果不是很好,笔试一塌糊涂!!!
正文
题目要求:实现一个模板字符串的替换
let template = ‘我是{{name}},年龄{{age}},性别{{sex}}’;
let person = {
name: ‘布兰’,
age: 12
}
render(template, person); // 我是布兰,年龄12,性别undefined
考察知识点:
正则
匹配- 对象的遍历
string.replace
方法的使用
代码实现:
const myRender = (template, person) => {
let reg = /{{(.*?)}}/g
let res = template.replace(reg, (item, key) => {
console.log(key, item)
return person[key]
})
console.log(res) // 我是布兰,年龄12,性别undefined
return res
}
let template = '我是{{name}},年龄{{age}},性别{{sex}}'
let person = {
name: '布兰',
age: 12,
}
myRender(template, person)
总结:
这个就是一个简单的替换,但自己却没写出来,太菜了,所以发个blog,警示自己!!!