我发现了一个库,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
魔法都不适用。
我发现了一个库,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
魔法都不适用。
看起来好像你参考下称为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.
您可以使用自己的小型轻量的代码来做到这一点:
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';
}
这可能应该与'decodeURICompone一起使用nt'来实现OP想要的东西.. – 2011-05-13 22:26:06
Mellamokb的回答,Shadow Wizard的评论和用空格替换'+'s的组合工作完美。谢谢! – bloudermilk 2011-05-13 22:53:19