如何将URL安全查询参数解析为可读字符串

时间:2011-05-13 22:11:20

标签: javascript jquery

我找到了一个库jQuery URL Parser,就解析URL的各个部分而言,它似乎功能齐全。我试图更进一步,并解析查询参数的

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

作为旁注,我不会对当前页面的网址进行操作,因此任何location魔法都不适用。

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分: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';
    }