使用字符串方法match实现捕获

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;  
}