[英]How to get multiple parameters with same name from a URL in JavaScript
一个问题,但可能没有结束,我如何从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; i<arrURLParams.length; i++){ var sParam = arrURLParams[i].split("="); console.log(sParam); if(sParam){ if(sParam[0] == paramName){ if(sParam.length>0){ 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”的值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.