正则的补充

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
     var str = "123hfgh789hgf25ghf456hg3.14f";
             //
     var reg = /\d+/g;
//     ES6添加了y修饰符和g类似,不过y 修饰符在下次匹配的时候需要紧跟上次匹配成功之后的结果匹配,而g则是全局匹配;
//     exec() 方法在匹配全局对象的时候, 多次匹配会在上一次结束的地方继续匹配;

     console.log(str.match(reg));//["123", "789", "25", "456", "3", "14"]
      console.log(reg.exec(str));//["123", index: 0, input: "123hfgh789hgf25ghf456hg3.14f", groups: undefined] 每次只打印一个值,但包括很多信息。
     reg.lastIndex = 0;
      console.log(reg.exec(str));//123..(很多信息).
     reg.lastIndex = 1;
     console.log(reg.exec(str));//23...

     reg.lastIndex = 3;
     console.log(reg.exec(str));//789...
     console.log(reg.lastIndex)//10
     reg.lastIndex = 10;
     console.log(reg.exec(str));//25
     console.log(reg.lastIndex)//15
     //    ........
     reg.lastIndex=0;
     console.log(reg.exec(str));//123.
     console.log(reg.lastIndex) //3,最后一个值在第几位?

     var s = 'aaa_aa_a’;
     var r1 = /a+/g;
     var r2 = /a+/y;

     r1.exec(s) // ["aaa”]
     r2.exec(s) // ["aaa”]
     r1.exec(s) // ["aa”]
     r2.exec(s) // null

</script>
</html>

 

posted @ 2019-08-30 14:46  菜鸟小何  阅读(154)  评论(0编辑  收藏  举报