正则表达式获取url参数

来源:互联网 发布:caffe windows 编译 编辑:程序博客网 时间:2024/05/16 17:49

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@
原创粉丝点击