js解析url查询参数

  • split方法
var path = 'www.u.com/home?id=2&type=0&dtype=-1';

function parseUrl(url){
    var result = [];
    var query = url.split("?")[1];
    var queryArr = query.split("&");
    queryArr.forEach(function(item){
        var obj = {};
        var value = item.split("=")[1];
        var key = item.split("=")[0];
        obj[key] = value;
        result.push(obj);
    });
    return result;
}

console.log(parseUrl(path)); 
//[{id: '2'},{type: '0'},{dtype: '-1'}]
  • 正则
var regex = /[^&=?]+=[^&]*/g;
var res = url.match(regex);

//example:

res =  "www.u.com/home?id=2&type=0&dtype=-1".match(refex);
//["id=2", "type=0", "dtype=-1"]

也可以写一个方法用来取得具体的一个参数值:

var getParamValue = function(url,key){
    var regex = new RegExp(key+"=([^&]*)","i");
    return url.match(regex)[1];

}
getParamValue( "www.u.com/home?id=2&type=0&dtype=-1","id")
//2

getParamValue( "www.u.com/home?id=2&type=0&dtype=-1","dtype");
//-1

getParamValue( "www.u.com/home?id=2&type=0&dtype=-1","type")
//0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值