正则 execAll()多次获取

128 阅读1分钟
   var str = 'zf2019px2020';
RegExp.prototype.execAll=function(str){
     var reg = /\d+/;//因为没有全局匹配所有需要进行补g
     let_this=this;
     if(!_this.global){
         _this=new RegExp(_this,'g');
     }
     let ary=[];
     while(ture){
         let arg=_this.exec(str);
         if(reg==null) break;
         ary.push(reg);
     }
     return ary;
}

获取url的参数 以及has

  var str = 'http://www.zhufengpeixun.cn/ ?lx=1& from=wx&b=12&c=13#vals';

RegExp.prototype.execAll=function(str){
     var reg = /\d+/;//因为没有全局匹配所有需要进行补g
     let_this=this;
     if(!_this.global){
         _this=new RegExp(_this,'g');
     }
     let ary=[];
     while(ture){
         let arg=_this.exec(str);
         if(reg==null) break;
         ary.push(reg);
     }
     return ary;
}
function getParam(url){
    let reg=/([^?=&])=([^?=&#])+/g;  //获取参数的
    let reg2=/#(.+)?/;    //获取has
    let obj={};
    reg.exeAll(url.forEach(item=>{
     obj[item[1]]=item[2];
    });
    let ary=reg2.exec(url);
    ary ? obj.has = ary[1] : obj
    return obj
}