1

我有一个类似于 example.com/?id[]=15029&id[]=18711&foo=bar#MyTab 的网址

我想获取 url 中的所有 id

var str = window.location.search;
var result = {};
str.replace(/([^?=&]+)(?:[&#]|=([^&#]*))/g, function (match, key, value) {
    result[key] = value || 1;
});
result;

上面的代码只返回最后一个 id 参数。

如何改进它以获取数组中的所有 id?

4

1 回答 1

0

知道了

function getUrlParam (paramName) {
    var str = window.location.search;
    var result = {};
    str.replace(/([^?=&]+)(?:[&#]|=([^&#]*))/g, function (match, key, value) {
        if (key.indexOf("[]") !== -1) {
            key = key.replace(/\[\]$/, "");
            if(!(result[key])) {
                result[key] = new Array();
            }
            result[key].push(value);
        } else {
            result[key] = value || 1;
        }
    });

    if(result[paramName]){
        return result[paramName];
    } else {
        return '';
    }
};
getUrlParam('id')
于 2012-12-13T05:06:24.137 回答