js如何获取url所传递的参数和参数值

快乐打工仔 分类:实例代码

大家知道可以使用url传递参数值,本站几乎随便一个链接都会有传值,既然要传递值,那么自然要获取,否则就没有任何意义了,下面就通过实例介绍一下如何使用javascript获取url传递的参数和参数值。

代码实例如下:

(function(){ 
  var urlToObject=function(url){ 
    var urlObject = {}; 
    if (/\?/.test(url)){ 
      var urlString=url.substring(url.indexOf("?")+1); 
      var urlArray=urlString.split("&"); 
      for(var i=0,len=urlArray.length;i<len;i++){ 
        var urlItem=urlArray[i]; 
        var item = urlItem.split("="); 
        urlObject[item[0]]=item[1]; 
      } 
      return urlObject; 
    } 
  }; 
  var testUrl="http://pipipi.net/index.php?a=0&b=1&c=2"; 
  var result=urlToObject(testUrl); 
  for (var key in result){ 
    console.log(key+"="+result[key]); 
  } 
})();

以上代码可以输出url的参数和对应的参数值,下面就介绍一下实现过程。

一.实现原理:

1.判断url是否含有参数。在本代码中使用正则表达式if(/\?/.test(url))判断url中是否含有?,如果含有问号,那么就说明此链接中含有参数,然后执行if语句中的代码。

2.获取url中的参数和参数值。在这里是使用split()函数分割字符串,依次实现此功能。

二.代码注释:

1.(function(){})(),声明一个匿名函数并执行。

2.var urlToObject=function(url){},声明一个函数,此函数的参数是一个超链接。

3.var urlObject={},声明一个对象直接量。

4.if(/\?/.test(url)) ,判断链接中是否含有?,也就是是否含有参数。

5.var urlString=url.substring(url.indexOf("?")+1),截取url问号只有的字符串。

6.var urlArray=urlString.split("&"),使用split()函数以&为标记分割字符串,并生成一个数组。这样每一个数组元素就是一个参数和参数值对。

7.for(var i=0,len=urlArray.length;i<len;i++),使用for循环遍历urlArray数组。

8.var urlItem=urlArray,将指定索引的数组值赋值给变量urlItem。

9.var item=urlItem.split("="),再使用=分割字符串并生成一个数组,因为urlArray数组每一个元素都是一个参数和参数值对,例如"a=0",这样再经过分割,生成新数组的第一项就是参数名称,第二个项就是参数值。

10.urlObject[item[0]]=item[1],将参数名称作为对象的属性名称,参数值作为对象的属性值。

11.return urlObject,返回对象。

12.var testUrl=http://pipipi.net/index.php?a=0&b=1&c=2,用作测试的url。

13.var result=urlToObject(testUrl),将参数和参数值转换成对象的属性和属性值,并返回此对象。

14.for(var key in result),遍历此对象.

三.相关阅读:

1.substring()函数可以参阅javascript substring()一章节。 

2.indexOf()函数可以参阅JavaScript String indexOf()一章节。

3.split()函数可以参阅JavaScript split()一章节。 

4.for in语句可以参阅javascript for in一章节。

js如何获取url所传递的参数和参数值,这样的场景在实际项目中还是用的比较多的,关于js如何获取url所传递的参数和参数值就介绍到这了。

js如何获取url所传递的参数和参数值属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容