使用正则表达式解析URL参数

时间:2012-12-13 04:32:33

标签: javascript regex url

我有一个url similat到example.com/?id [] = 15029& id [] = 18711& foo = bar#MyTab

我想获取网址中的所有ID

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

以上代码仅返回最后一个id参数。

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

1 个答案:

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