2011-05-13 130 views
0

我发现了一个库,jQuery URL Parser,它似乎是解析出URL各个段的全功能库。我试图进一步,但解析的查询参数。如何将URL安全查询参数解析为可读字符串

例如,给定URL "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=rm+-rf+%2F"我想获得"rm -rf /"q参数。任何建议将不胜感激。

作为一个便笺,我没有对当前页面的URL进行操作,所以任何location魔法都不适用。

回答

2

看起来好像你参考下称为Query string parameters节给出确实可以检索查询字符串值库:

的.PARAM()方法用于返回的查询字符串参数 值。

传递一个字符串来访问 参数的值:

$.url('http://allmarkedup.com?sky=blue&grass=green').param('sky'); // returns 'blue' If no argument is passed in it will return an object literal containing a key:value map of all the querystring parameters.

$.url('http://allmarkedup.com?sky=blue&grass=green').param(); // returns { 'sky':'blue', 'grass':'green' } Note that the .param() method will work on both ampersand-split and semicolon-split querystrings.

+2

这可能应该与'decodeURICompone一起使用nt'来实现OP想要的东西.. – 2011-05-13 22:26:06

+0

Mellamokb的回答,Shadow Wizard的评论和用空格替换'+'s的组合工作完美。谢谢! – bloudermilk 2011-05-13 22:53:19

0

您可以使用自己的小型轻量的代码来做到这一点:

function getParam(url, param) { 
     if (!url.indexOf('?')) { 
      return 'undefined'; 
     } 
     url = url.split('?')[1]; 
     var arr = url.split('&'); 
     for (var i = 0; i < arr.length; i++) { 
      var key = arr[i].split('=')[0], val = arr[i].split('=')[1]; 
      if (key === param) { 
       return val; 
      } 
     } 
     return 'undefined'; 
    } 
相关问题