正则表达式

var reg=/明明|静静/g;

do{

   var arr=reg.exec(str);

   console.log(arr);

  }while(...)

  <script>

        var str="明明喜欢我,却不告诉我。别理我,我想静静。静静是谁?你先告诉我明明是谁。";

        var reg=/明明|静静/g;//创建正则表达式对象的意思

        // var arr=reg.exec(str);

        // var arr=str.match(reg);

       

        do{

            var arr=reg.exec(str);

            if(arr!=null){

                console.log(arr);

            }else{

                break;

            }

        }while(true)

    </script>

就可以自动向后找

/正则/是创建一个正则表达式对象的意思

/正则/放在do外部,只创建一个,反复使用

/正则/放在do内部,每循环一次,都创建新的reg对象

   又因为exec之所以能向后找,是因为reg对象上有一个lastIndex属性指定累加下次开始的位置。

    如果只创建一个reg对象,则reg.lastIndex可反复累加。而如果每次创建新的reg对象,

    都会导致lastIndex重新回到0

原文地址:https://www.cnblogs.com/sna-ling/p/11866667.html