方法一:正則法
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
// 這樣調(diào)用:
alert(GetQueryString("參數(shù)名1"));
alert(GetQueryString("參數(shù)名2"));
alert(GetQueryString("參數(shù)名3"));
方法二:split拆分法
function GetRequest() {
var url = location.search; //獲取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
var Request = new Object();
Request = GetRequest();
// var 參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)N;
// 參數(shù)1 = Request['參數(shù)1'];
// 參數(shù)2 = Request['參數(shù)2'];
// 參數(shù)3 = Request['參數(shù)3'];
// 參數(shù)N = Request['參數(shù)N'];
****方法三:又見(jiàn)正則****
通過(guò)JS獲取url參數(shù),這個(gè)經(jīng)常用到。比如說(shuō)一個(gè)url:http://wwww.jb51.net/?q=js,我們想得到參數(shù)q的值,那可以通過(guò)以下函數(shù)調(diào)用即可。
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //獲取url中"?"符后的字符串并正則匹配
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}
alert(GetQueryString("q"));
方法四:?jiǎn)蝹€(gè)參數(shù)的獲取方法
function GetRequest() {
var url = location.search; //獲取url中"?"符后的字串
if (url.indexOf("?") != -1) { //判斷是否有參數(shù)
var str = url.substr(1); //從第一個(gè)字符開(kāi)始 因?yàn)榈?個(gè)是?號(hào) 獲取所有除問(wèn)號(hào)的所有符串
strs = str.split("="); //用等號(hào)進(jìn)行分隔 (因?yàn)橹乐挥幸粋€(gè)參數(shù) 所以直接用等號(hào)進(jìn)分隔 如果有多個(gè)參數(shù) 要用&號(hào)分隔 再用等號(hào)進(jìn)行分隔)
alert(strs[1]); //直接彈出第一個(gè)參數(shù) (如果有多個(gè)參數(shù) 還要進(jìn)行循環(huán)的)
}
}