var reg = /d+/g; var str = '我的2017兜兜2018有糖2019起航2020'; str.match(reg); //=>["2017", "2018", "2019", "2020"]
使用字符串match捕获:
1、如果正则加了修饰符g,执行一次match会把所有正则匹配的内容捕获到
2、如果没有加修饰符g,执行一次match只能把第一个匹配的结果捕获到
局限性:
在加了修饰符g的情况下,执行match方法只能把大正则匹配的内容捕获到,对于小分组捕获的内容方法给其自动忽略了
var str = 'my name is {0},i am {1} years old~,2017'; //=>需求:把{n}整体捕获到,而且还要把括号中的数字也获取到 var reg = /{(d+)}/g; // str.match(reg);//=>["{0}", "{1}"] //=>想要获取小分组中的内容,我们只能使用EXEC处理了 function fn(reg,str){ var ary=reg.exec(str), result=[]; while(ary){ result.push(ary); ary=reg.exec(str); } return result; }