正则表达式获取url参数

1、将所有参数转化为对象,重复的参数作为数组:

function parseQuery(url) {
    var queryObj={};
    var reg=/[?&]([^=&#]+)=([^&#]*)/g;
    var querys=url.match(reg);
    if(querys){
        for(var i in querys){
            var query=querys[i].split('=');
            var key=query[0].substr(1),
                value=query[1];
            queryObj[key]?queryObj[key]=[].concat(queryObj[key],value):queryObj[key]=value;
        }
    }
    return queryObj;
}
var url='http:www.baidu.com/index?name=username&age=27&pwd=zbc|123@&likes=lol&likes=beautifull girl&$id=main#flag=66';
console.log(parseQuery(url));


//结果:
{ name: 'username',
  age: '27',
  pwd: 'zbc|123@',
  likes: [ 'lol', 'beautifull girl' ],
  '$id': 'main' 
}

2、获取某个url中某个参数的值

function getQueryByName(url,name){
    var reg=new RegExp('[?&]'+name+'=([^&#]+)');
    var query=url.match(reg);
    return query?query[1]:null;
}

var url='http:www.baidu.com/index?name=wangqingqiang&age=27&pwd=wqq123@#flag=66';
var value=getQueryByName(url,'pwd');
console.log(value);

//结果:
wqq123@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值