封裝一個exec方式:直接把東西都拿到

王東煜發表於2019-09-25
RegExp.prototype.execAll = function(str){
    //如果加全域性的g就會出現死迴圈,必須使用global判斷下 預設是true
    let _this = this;
    if(!_this.global){
        let s = /^\/(.+)\/$/.exec(_this + '')[1];
        _this = new RegExp(s,'g')
    }
    let res = _this.exec(str);
    let ary = [];
    while(res){
        ary.push(res);
        res =_this.exec(str)
    }
    return ary
}
var str = '上課1123好好1521學習1222';
var reg = /\d+/;
console.log(reg.execAll(str));
複製程式碼

相關文章