js获取url参数值的方法总结

 

正文

 1、方式一:通过字符串截取的方式获取参数值;

函数一:获取URL中的参数名及参数值的集合

复制代码
复制代码
 1 /**
 2  * [获取URL中的参数名及参数值的集合]
 3  * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
 4  * @param {[string]} urlStr [当该参数不为空的时候,则解析该url中的参数集合]
 5  * @return {[string]}       [参数集合]
 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']); // '小明'

函数二:URLSearchParams()函数

        var url2 = 'https://gitbook.cn/gitchat/geekbooks?tag=%E5%A4%A7%E6%95%B0%E6%8D%AE&name=gy&age=22';
        var temp2 = url2.split('?')[1];
        var pram2 = new URLSearchParams('?'+temp2);
        console.log(pram2.get('tag')); // 大数据
        console.log(pram2.get('name'));// gy
        console.log(pram2.get('age')); // 22
        console.log(temp2);   //tag=%E5%A4%A7%E6%95%B0%E6%8D%AE&name=gy&age=22

 

函数三:通过window.location.search对象,根据参数名获取url中的参数值

复制代码
复制代码
 1 /**
 2  * [通过参数名获取url中的参数值]
 3  * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
 4  * @param  {[string]} queryName [参数名]
 5  * @return {[string]}           [参数值]
 6  */
 7 function GetQueryValue(queryName) {
 8     var query = decodeURI(window.location.search.substring(1));
 9     var vars = query.split("&");
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);// 小明
 

2、方式二:通过正则获取到参数值;

复制代码
复制代码
 1 /**
 2  * [通过参数名获取url中的参数值]
 3  * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
 4  * @param  {[string]} queryName [参数名]
 5  * @return {[string]}           [参数值]
 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);// 小明

 

 

出处:https://www.cnblogs.com/willingtolove/p/11134762.html

posted on   jack_Meng  阅读(5051)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2016-02-23 银行利息计算公式推导(存款,贷款)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩