1 // 编译文本节点 2 compileText (node) { 3 const reg = /{{(.+)}}/ 4 // 获取文本节点的内容 5 const value = node.textContent 6 if (reg.test(value)) { 7 // 插值表达式中的值就是我们要的属性名称 8 const key = RegExp.$1.trim() 9 // 把插值表达式替换成具体的值 10 node.textContent = value.replace(reg, this.vm[key]) 11 } 12 }
获取插值表达式的正则:const reg = /{{(.+)}}/
判断某个值是否符合某个规则:reg.test(value)
拿到正则中第一个参数值:const key = RegExp.$1.trim()