1、定义了列表循环的标记
{%for {stars} %}
<li>
<h4>姓名: {{item}}</h4>
</li>
{%endfor%}
2、正则匹配标记
let reg = /\{\%for \{(.*?)\} \%\}(.*?)\{\%endfor\%\}/igs
匹配到两个组
1、第一个组匹配出变量的key值
2、第二组匹配出需要生成的每一项的内容
3、匹配替换每一项的内容
while(result = reg.exec(data)){
let strKey = result[1].trim()
//通过key值获取数组的内容
let strValueArr = options[strKey]
let listStr = ""
strValueArr.forEach((item,i) => {
//替换每一项内容里的变量
listStr = listStr + replaceVar(result[2],{"item":item})
});
data = data.replace(result[0],listStr)
}
4、通过eval函数,将字符串表达式计算出来
let strValue = eval('options.'+strKey)