示例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