js如何獲取url參數,拼接url參數


1、通過字符串截取的方式獲取參數值;

(注意location.search截取“?”后的字符串,該方法只適用於通過鏈接跳轉的路徑,如果是直接截取路徑則返回空值,因此應該加上判斷)

 1 /**
 2  * [獲取URL中的參數名及參數值的集合]
 3  * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&username=張三
 6  */
 7 function GetRequest(urlStr) {//兩種方式,輸入鏈接獲取或當前鏈接獲取
 8     if (typeof urlStr == "undefined") {
 9         var url = decodeURI(location.search); //獲取url中"?"符后的字符串
10     } else {
11         var url = "?" + urlStr.split("?")[1];
12     }
13     var theRequest = new Object();
14     if (url.indexOf("?") != -1) {
15         var str = url.substr(1);//去掉問號,問號為第一個字符
16         strs = str.split("&");
17         for (var i = 0; i < strs.length; i++) {
18             theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
19         }
20     }
21     return theRequest;
22 }

 

下面我們看一下結果:
1 var parms_1 = GetRequest();
2 console.log(parms_1); // {"uid":"admin","rid":"1","fid":"2","name":"張三"}
3 console.log(parms_1['name']); // '張三'
4 var parms_2 = GetRequest('http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=張三');
5 console.log(parms_2); // {"uid":"admin","rid":"1","fid":"2","name":"張三"}
6 console.log(parms_2['name']); // '張三'

2、通過參數名獲取url中的參數值

(鏈接轉碼問題可參考上一篇文章https://www.cnblogs.com/shubo168/p/13398004.html

 1 /**
 2  * [通過參數名獲取url中的參數值]
 3  * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=張三
 6  */
 7 function GetQueryValue(queryName) {
 8     var query = decodeURI(window.location.search.substring(1));//將url轉碼,如果不是當前地址鏈接,可以在這里填寫需要的鏈接
 9     var vars = query.split("&");//分割字符串,將url切割成數組形式的對象
10     for (var i = 0; i < vars.length; i++) {
11         var pair = vars[i].split("=");//再次分割成數組
12         if (pair[0] == queryName) { return pair[1]; }//如果匹配輸出結果
13     }
14     return null;
15 }

 

看一下結果:

1 var queryVal=GetQueryValue('name');
2 console.log(queryVal);// 張三

 

3、通過正則獲取到參數值;

 1 /**
 2  * [通過參數名獲取url中的參數值]
 3  * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=張三
 6  */
 7 function GetQueryValue1(queryName) {
 8     var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
 9     var r = window.location.search.substr(1).match(reg);
10     if ( r != null ){
11        return decodeURI(r[2]);
12     }else{
13        return null;
14     }
15  }

看一下結果:

1 var queryVal=GetQueryValue1('name');
2 console.log(queryVal);// 張三

 

打賞

免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2021 CODEPRJ.COM