js获取地址栏上的参数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wlangmood/article/details/78621831

1、把参数和参数值解析对象内,通过urlParse().参数获取参数值

例如:

https://www.baidu.com/?id=12345&name=b

返回的obj为:

{id: "12345", name: "b"}

function urlParse() {
  let url = window.location.search
  let obj = {}
  let reg = /[?&][^?&]+=[^?&]+/g
  let arr = url.match(reg) //找到所有匹配项
  console.log(arr)
  // ['?id=12345','&name=b']
  if (arr) {
    arr.forEach((item) => { //遍历数组
      let tempArr = item.substring(1).split('=') //截取字符串并分割
      // console.log(tempArr)
      let key = decodeURIComponent(tempArr[0])
      let val = decodeURIComponent(tempArr[1])
      obj[key] = val
    })
  }
  return obj
}
console.log(urlParse().id,urlParse().name)
2、直接通过参数获取参数值,参数需要加引号,不然会报错

function GetQueryString(parm) {
    let reg = new RegExp("(^|&)"+ parm +"=([^&]*)(&|$)");
    let r = window.location.search.substr(1).match(reg);//匹配正则表达式及其分组
    console.log(r);//["&name=222", "&", "222", "", index: 4, input: "id=1&name=222"]
    if(r!=null) {
		return  unescape(r[2]); 
	} else {
		return null;
	}
}
console.log(GetQueryString("name"),GetQueryString("id"))



猜你喜欢

转载自blog.csdn.net/wlangmood/article/details/78621831