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)