使用while循环replace/replace替换真值
2021-09-07 本文已影响0人
圆滚滚大煤球
<script>
var str = '<div>{{name}}今年{{age}}岁了</div>';
// 匹配{{}}里面的\s空格,*0-n次,[a-zA-Z]大小写字母 +可以出现多次
var pattern = /{{\s*([a-zA-Z]+)\s*}}/
// 创建一个空的变量
var patternResult = null;
// (条件),条件必须有结束退出循环,这里是匹配不到了就结束
while(patternResult = pattern.exec(str)) {
str = str.replace(patternResult[0],patternResult[1])
}
console.log(str);//<div>name今年age岁了</div>
</script>
replace替换真值
<script>
var data = {
name:'小红',
age: 3,
sex:'公'
}
var str = '<div>名字:{{name}},年龄:{{age}}岁,性别:{{sex}}</div>'
// 匹配{{}}里面的\s空格,*0-n次,[a-zA-Z]大小写字母 +可以出现多次
var pattern = /{{\s*([a-zA-Z]+)\s*}}/
var patternResult = null;
while(patternResult = pattern.exec(str)) {
// data[] 是取属性的格式,patternResult[1] = {{name}}的name或者{{age}}中的age等
str = str.replace(patternResult[0],data[patternResult[1]])
}
console.log(str);//<div>名字:小红,年龄:3岁,性别:公</div>
</script>