示例URL:https://editor.csdn.net/?a=1&b=2&c=3
方法一:采用正则表达式获取地址栏参数 (代码简洁,重点正则)
function getQueryString(name) {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
let r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
};
return null;
}
console.log(getQueryString('a));// 1
console.log(getQueryString('b));// 2
方法二:split拆分法 (代码较复杂,较易理解)
function getRequest() {
const url = location.search; //获取url中"?"符后的字串
let theRequest = new Object();
if (url.indexOf("?") != -1) {
let str = url.substr(1);
let strs = str.split("&");
for(let i = 0; i < strs.length; i ++) {
let strsArr = strs[i].split("=");
theRequest[strsArr[0]] = unescape(strsArr[1]);
}
}
return theRequest;
}
console.log(getRequest());
/*
{a: "1", b: "2", c: "3"}
*/
方法三:split拆分法(易于理解,代码中规)
function getQueryString(name){
let query = window.location.search.substring(1);
let vars = query.split("&");
for (let i = 0; i < vars.length; i++) {
let pair = vars[i].split("=");
if(pair[0] == name)
{return pair[1];}
}
return(false);
}
console.log(getQueryString('a));// 1
console.log(getQueryString('b));// 2
来源:CSDN
作者:hufi
链接:https://blog.csdn.net/qq_39075021/article/details/103959672