获取url参数

Posted 大黑ylx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取url参数相关的知识,希望对你有一定的参考价值。

题目描述

获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串
2. 不指定参数名称,返回全部的参数对象 或者 {}
3. 如果存在多个同名参数,则返回数组

 


 1 function getUrlParam(sUrl, sKey) {
 2     //去掉#后面的内容,即例子中的here;去掉?前面的地址,剩下的即为参数
 3     var param = sUrl.split("#")[0].split("?")[1];
 4     if(sKey){
 5         var strs = param.split("&");//分隔每个参数
 6         var arrs = new Array();//如果存在多个同名参数,则返回数组
 7         for(var i = 0 , len = strs.length; i<len; i++){  //len保存strs数组的长度,因为strs将会被分割
 8             var tmp = strs[i].split("="); //把每个strs[i]分割成参数和参数值
 9             if(tmp[0] == sKey){  //若等于指定参数,则保存到数组
10                 arrs.push(tmp[1]);
11             }
12         }
13         if(arrs.length == 1){ //指定参数名称,返回该参数的值 或者 空字符串
14             return arrs[0];
15         }
16         else if(arrs.length == 0){
17             return "";
18         }
19         else {
20             return arrs;
21         }
22     }
23     else { //不指定参数名称,返回全部的参数对象 或者 {}
24         if(param == undefined || param == ""){//url无参数列表
25             return {};//空对象
26         }
27         else {
28             var strs = param.split("&");
29             var arrObject = new Object();
30             for(var i = 0 , len = strs.length ; i< len ; i++){
31                 var tmp = strs[i].split("=");
32                 if(!(tmp[0] in arrObject)){//判断arrObject是否有这个属性
33                     arrObject[tmp[0]]= [];//不在创建属性数组
34                 }
35                 arrObject[tmp[0]].push(tmp[1]);
36             }
37             return arrObject;
38         }
39     }
40 }

 

链接:https://www.nowcoder.com/questionTerminal/a3ded747e3884a3c86d09d88d1652e10
来源:牛客网

以上是关于获取url参数的主要内容,如果未能解决你的问题,请参考以下文章

如何从URL获取片段标识符(hash#之后的值)?

URL 片段中的多个参数

从 URL 获取片段(哈希“#”后的值)[关闭]

Symfony2 将哈希片段参数附加到分页 URL

如何从 URL 获取片段标识符(哈希 # 后的值)?

如何清除片段中的参数?