JS獲取URL中引數值(QueryString)的4種方法分享

singer-coder發表於2018-01-02

方法一:正則法

程式碼如下:
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;
}
// 這樣呼叫:
alert(GetQueryString("引數名1"));

alert(GetQueryString("引數名2"));

alert(GetQueryString("引數名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 引數1,引數2,引數3,引數N;
// 引數1 = Request['引數1'];
// 引數2 = Request['引數2'];
// 引數3 = Request['引數3'];
// 引數N = Request['引數N'];

方法三:又見正則

通過JS獲取url引數,這個經常用到。比如說一個url:http://wwww.jb51.net/?q=js,我們想得到引數q的值,那可以通過以下函式呼叫即可。

程式碼如下:

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

方法四:單個引數的獲取方法

function GetRequest() {
var url = location.search; //獲取url中"?"符後的字串
if (url.indexOf("?") != -1) { //判斷是否有引數
var str = url.substr(1); //從第一個字元開始 因為第0個是?號 獲取所有除問號的所有符串
strs = str.split("="); //用等號進行分隔 (因為知道只有一個引數 所以直接用等號進分隔 如果有多個引數 要用&號分隔 再用等號進行分隔)
alert(strs[1]); //直接彈出第一個引數 (如果有多個引數 還要進行迴圈的)
}
}


相關文章