最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - How to get multiple parameters with same name from a URL in JavaScript - Stack Overflow

programmeradmin1浏览0评论

A question asked without possibly an end is how do I get variable from a URL. In all my searching I have found several very good ways to get A=aValue from the url.

But my question is I need

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

I need an array of the two A's in the url and I need to know that aValue was the first one and secondAValue was the second

I have jquery Mobile.

Update

So this is what I have now

var urlParamDevice = getURLParameter('DeviceID');


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

The getURLParameter(name) needs to be a little more robust.

Update 2, 2014/03/07 Here is what I came up with from the suggested answer

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;
}

A question asked without possibly an end is how do I get variable from a URL. In all my searching I have found several very good ways to get A=aValue from the url.

But my question is I need

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

I need an array of the two A's in the url and I need to know that aValue was the first one and secondAValue was the second

I have jquery Mobile.

Update

So this is what I have now

var urlParamDevice = getURLParameter('DeviceID');


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

The getURLParameter(name) needs to be a little more robust.

Update 2, 2014/03/07 Here is what I came up with from the suggested answer

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;
}
Share Improve this question edited Mar 7, 2014 at 17:24 Brian Hanf asked Mar 5, 2014 at 21:08 Brian HanfBrian Hanf 5642 gold badges11 silver badges31 bronze badges 2
  • 1 There are examples of passing arrays (or any other object) as a parameter here: api.jquery./jQuery.param – Rainbolt Commented Mar 5, 2014 at 21:12
  • Thanks, trying to get an array from the URL not pass one. – Brian Hanf Commented Mar 5, 2014 at 21:45
Add a ment  | 

3 Answers 3

Reset to default 2

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();
	}

That would be by doing as: https://stackoverflow./a/1099670/1020854 - But with a little modification

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"}

Sometimes this will work:

A[]=aValue&A[]=secondAValue

Otherwise you can do this:

A_1=aValue&A_2secondAValue

You can split on the the underscore or use mostly any character of your choice to differentiate values of querystring "A"

发布评论

评论列表(0)

  1. 暂无评论