使用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>
上一篇下一篇

猜你喜欢

热点阅读