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

时间:2014-03-05 21:08:38

标签: javascript jquery

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

但我的问题是 我需要

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

我需要网址中两个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;
}

3 个答案:

答案 0 :(得分:1)



{{1}}




答案 1 :(得分:0)

那样做: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"}

答案 2 :(得分:0)

有时这会奏效:

A[]=aValue&A[]=secondAValue

否则你可以这样做:

A_1=aValue&A_2secondAValue

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