如何从JavaScript中的URL获取具有相同名称的多个参数

一个问题没有可能结束,我如何从URL获取变量。 在我的所有搜索中,我发现了几种非常好的方法从url获得A=aValue

但我的问题是我需要

 ?Company=FLHS&Device=Crosstown_PCC_01&A=aValue&A=secondAValue 

我需要一个url中的两个A的数组,我需要知道aValue是第一个, secondAValue是第二个

我有jquery Mobile。

更新

所以这就是我现在所拥有的

 var urlParamDevice = getURLParameter('DeviceID'); function getURLParameter(name) { return decodeURI( (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1] ); 

getURLParameter(name)需要更强大一些。

更新2,2014 / 03/07这是我从建议的答案中得出的结论

 function getQueryParams(name) { qs = location.search; var params = []; var tokens; var re = /[?&]?([^=]+)=([^&]*)/g; while (tokens = re.exec(qs)) { if (decodeURIComponent(tokens[1]) == name) params.push(decodeURIComponent(tokens[2])); } return params; } 

 function getparamNameMultiValues(paramName){ var sURL = window.document.URL.toString(); var value =[]; if (sURL.indexOf("?") > 0){ var arrParams = sURL.split("?"); var arrURLParams = arrParams[1].split("&"); for (var i = 0; i0){ value.push(sParam[1].trim()); } } } } } return value.toString(); } 

这将是这样的: https : //stackoverflow.com/a/1099670/1020854 – 但稍作修改

 function getQueryParams(qs) { qs = qs.split("+").join(" "); var params = [], tokens, re = /[?&]?([^=]+)=([^&]*)/g; while (tokens = re.exec(qs)) { params.push({k:decodeURIComponent(tokens[1]),v:decodeURIComponent(tokens[2])}); } return params; } var obj = getQueryParams("?Company=FLHS&Device=Crosstown_PCC_01&A=aValue&A=secondAValue") obj[0] is {k: "Company", v: "FLHS"} obj[1] is {k: "Device", v: "Crosstown_PCC_01"} obj[2] is {k: "A", v: "aValue"} obj[3] is {k: "A", v: "secondAValue"} 

有时这会起作用:

 A[]=aValue&A[]=secondAValue 

否则你可以这样做:

 A_1=aValue&A_2secondAValue 

您可以拆分下划线或主要使用您选择的任何字符来区分查询字符串“A”的值