您的位置:首页 > 其它

正则表达式获取url参数

2017-06-29 13:25 183 查看
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@
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式