求助:提取url参数

阅读 2k
3 个回答
function queryParse (str) {
  return str.split('&').reduce((res, kv) => {
    const [k, v] = kv.split('=');
    res[k] = decodeURIComponent(v);
    return res;
  }, {});
}

const QUERY = queryParse(location.search.slice(1));

简易的实现,同名参数是直接覆盖的(一般够用)

let hashString = (new URL('http://w3c.pcidata.cn/pci_integral_mall_h5/#/?goodsType=09&mediaId=mt2000000019')).hash;
// #/?goodsType=09&mediaId=mt2000000019
let params = new URLSearchParams(hashString.replace('#/?',''));// hash 去掉 #/?
// [["goodsType", "09"],["mediaId", "mt2000000019"]]
console.log(params.get('mediaId'));// 获取参数
// mt2000000019
console.log(Object.fromEntries(params));// 数组转对象
// {goodsType: "09", mediaId: "mt2000000019"}

注意:不兼容IE

https://developer.mozilla.org...
https://developer.mozilla.org...
https://developer.mozilla.org...

image.png

function getQueryVal(url){
    url = url || '';
    let arr = (url.split("?")[1] || url || '').split("&");
    let o={};
    if(arr[0]==''){return o}
    arr.forEach(function(x){
        let ar=x.split("=");
        o[ar[0]]=ar[1]
    });
    return o
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题