在javascript / jquery中获取URL数组变量

我有一堆参数被URL变量传递给页面。 该URL看起来有点像:

file.aspx?类别[] = 1&类别[] = 7&类别[] = 3&ID = 8az

使用jQuery getUrlParam扩展我可以非常容易地获得url变量,但不是将数组作为数组返回(这是我想要的),它返回为null。

有没有一种方法可以让我将它们读入JavaScript数组中?


不应该是: file.aspx?category=1&category=7&category=3


我之前指出这个问题:使用jQuery获取QueryString值 - 但正如@Crescent Fresh指出的那样,这些示例并不处理查询字符串中的数组(而且,它们有点慢我认为。

所以我制作了这个函数的版本:

function getQueryString () {
    var ret = {};
    var parts = (document.location.toString().split('?')[1]).split('&');
    for (var i = 0; i < parts.length; i++) {

        var p = parts[i].split('=');
        // so strings will be correctly parsed:
        p[1] = decodeURIComponent(p[1].replace(/+/g, " "));

        if (p[0].search(/[]/) >= 0) { // then it's an array
            p[0] = p[0].replace('[]','');

            if (typeof ret[p[0]] != 'object') ret[p[0]] = [];
            ret[p[0]].push(p[1]);
        } else {
            ret[p[0]] = p[1];
        }
    }
    return ret;
}

但有些警告。 它只会在正确形成的查询字符串上工作 - 没有错误检测。 此外,它不适用于编号/索引数组......这就是当你的数组在查询字符串中被定义为:

?category[3]=1&category[4]=7&category[20]=3&id=8az

为.search()查询添加一个正则表达式也很简单,但我不是最好的正则表达式专家......任何人都有想法?

链接地址: http://www.djcxy.com/p/50691.html

上一篇: Get URL array variables in javascript/jquery

下一篇: Selenium server does not open browser