js获取URL参数

1.正则

function queryURLparamsRegEs5(url) {
    let obj = {}
    let reg = /([^?=&]+)=([^?=&]+)/g
    //使用arguments伪数组
    url.replace(reg, function() {
        //arguments[1]是参数的key;arguments[2]是参数的value
        obj[arguments[1]] = arguments[2]
    })
    //使用...arg剩余参数真数组
    //url.replace(reg, (...arg) => {
    //    obj[arg[1]] = arg[2]
    //})
    return obj
}

2.for循环遍历

const strFormat = (url) => {
  if (typeof url === "string") url = url.split("?")[1] || "";
  if (typeof url === "string") url = url.split(/[&=]/);
  let r = {};
  for (let i = 0; i < url.length; i = i + 2) {
    if (url[i]) {
      r[url[i]] = url[i + 1];
    }
  }
  return r;
};

3.URLSearchParams

var url = "http://test.com/test?a=1&b=2&c=3&a=4"; 
//使用new URLSearchParams(url)获取不到第一个参数a;使用url.split('?')[1]分割之后能正常获取到
var params = new URLSearchParams(url.split('?')[1]);

//get方法可以获取到参数中的第一个a
console.log(url.split('?')[1], params.get('a')) //a=1&b=2&c=3  1

//getAll方法可以获取到参数中全部的a,返回的是一个数组
console.log(params.getAll('a')) //[1,4]

//has方法,可以判断url中是否包含某个参数
console.log(params.has('a')) //true
posted @ 2024-03-11 13:42  天官赐福·  阅读(9)  评论(0编辑  收藏  举报
返回顶端