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"))