js 獲取url路徑中?後面參數的值

1.指定url

/**
*@param url,name
**/
function getParam(url, name) {
    try {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = url.split('?')[1].match(reg);
        if(r != null) {
          return r[2];
        }
        return "";//若是此處只寫return;則返回的是undefined
    } catch(e) {
        return "";//若是此處只寫return;則返回的是undefined
    }
};
//調用
//狀況一:url包含該參數
var url="http:www.baidu.com?a=111&b=222&c=333";
var name="b";
var re=getParam(url,name);
//輸出結果
222
//狀況二:url不包含該參數
var url="http:www.baidu.com?a=111&b=222&c=333";
var name="d";
var re=getParam(url,name);
//輸出結果
空字符串

2.當前窗口的url

  • 獲取url參數值對經過 escape() 編碼的字符串進行解碼。

  • 獲取url參數值對 encodeURI() 函數編碼過的 URI 進行解碼。

//對escape()編碼的字符串進行解碼
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;//若是此處只寫return;則返回的是undefined
};
//對encodeURI()編碼過的 URI 進行解碼。
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
	var r = window.location.search.substr(1).match(reg);
	if(r != null){
		return decodeURI(r[2]);
	} 
	return "";//若是此處只寫return;則返回的是undefined
};

//調用
//狀況一:url包含該參數
例如window.location.href="http://192.168.136.104:89/page/test5.html?a=1111&b=2222&c=33333";
var re=getUrlParam("c");
//結果
33333
//狀況二:url不包含該參數
例如window.location.href="http://192.168.136.104:89/page/test5.html?a=1111&b=2222&c=33333";
var re=getUrlParam("d");
//結果
空字符串
相關文章
相關標籤/搜索