Comment obtenir plusieurs parameters avec le même nom à partir d’une URL en JavaScript

Une question posée sans éventuellement une fin est comment puis-je obtenir une variable à partir d’une URL. Dans toutes mes recherches, j’ai trouvé plusieurs très bons moyens d’obtenir A=aValue partir de l’URL.

Mais ma question est j’ai besoin

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

J’ai besoin d’un tableau des deux A dans l’URL et j’ai besoin de savoir que aValue était le premier et secondAValue était le deuxième

J’ai jquery Mobile.

Mettre à jour

C’est donc ce que j’ai maintenant

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

Le paramètre getURLParameter (nom) doit être un peu plus robuste.

Update 2, 2014/03/07 Voici ce que j’ai trouvé dans la réponse suggérée

 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.toSsortingng(); var value =[]; if (sURL.indexOf("?") > 0){ var arrParams = sURL.split("?"); var arrURLParams = arrParams[1].split("&"); for (var i = 0; i0){ value.push(sParam[1].sortingm()); } } } } } return value.toSsortingng(); } 

Ce serait en faisant comme: https://stackoverflow.com/a/1099670/1020854 – Mais avec une petite 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"} 

Parfois, cela fonctionnera:

 A[]=aValue&A[]=secondAValue 

Sinon, vous pouvez faire ceci:

 A_1=aValue&A_2secondAValue 

Vous pouvez séparer le caractère de soulignement ou utiliser principalement n’importe quel caractère de votre choix pour différencier les valeurs de la chaîne de requête “A”.