我有一个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?
答案 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')