41.正则中懒惰性和贪婪性

1. exec 正则的捕获

  每一次捕获的时候,都是先进行默认的匹配,如果没有匹配成功的,捕获的结果是null,只有有匹配的内容,我们才能捕获到,捕获的内容格式是一个数组

  1)捕获的内容格式:

    a)捕获到的内容是一个数组,

      数组中的第一项:当前大正则捕获的内容

      第二项index:捕获内容在字符串中开始的索引位置

      第三项input:捕获的原始字符串

    var reg = /\d+/;

    var str = "zhangsan2015zai2017"
    var res = reg.exec(str);
    console.log(res) // ->["2015", index:9, input:"zhangsan2015zai2017"]

    // 我们第二次通过exec捕获的内容还是第一个“2015”
    res = reg.exec(str);

    console.log(res) // ->["2015", index:9, input:"zhangsan2015zai2017"]

  2)正则捕获的特点

    a)懒惰性->每一次执行exec只捕获第一个匹配的内容,在不进行任何处理的情况下,在执行多次捕获,捕获的还是第一个匹配的内容

      lastIndex:是正则每一次捕获在字符串中开始查找的位置,默认的值是0

      var reg = /\d+/;

      var str = "zhangsan2015zai2017"
      console.log(reg.lastIndex); // 0
      var res = reg.exec(str)
      console.log(reg.lastIndex); // 0 说明我们第二次捕获的时候也是要从字符串索引0处开始查找的

      var res = reg.exec(str)

      

    

猜你喜欢

转载自www.cnblogs.com/z-dl/p/8968946.html