Jquery lisant plusieurs paramètres de tableau depuis url

J'ai l'URL suivante:

http://mydomain/Forwards?searchValue[]=Nike+Webstore&searchValue[]=Bodyman&category_filter[]=Animals+%26+Pet+Supplies&category_filter[]=Fashion&country_filter[]=Aland+Islands&country_filter[]=American+Samoa 

Cette URL contient beaucoup de paramètres envoyés en tant que tableau:

Maintenant, je souhaite obtenir chaque tableau individuel et sa valeur

Dans l'exemple ci-dessus, le résultat devrait être comme ceci:

 searchValue = array( [0] = 'Nike Webstore' [1] = 'Bodyman' ); category_filter = array( [0] = 'Animals & Pet Supplies' [1] = 'Fashion' ); country_filter = array( [0] = 'Aland Islands' [1] = 'American Samoa' ); 

Est-il possible de le sortir comme ça et si oui, comment? J'ai essayé avec ce qui suit:

  decodeURIComponent( (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] 

Toutefois, cela n'a donné qu'une valeur de 1 (Nike Webstore) dans mon exemple.

Comme les paramètres sont un tableau. Le code ci-dessous fonctionnera très bien …

 // our test url var url ="http://mydomain/Forwards?searchValue[]=Nike+Webstore&searchValue[]=Bodyman&category_filter[]=Animals+%26+Pet+Supplies&category_filter[]=Fashion&country_filter[]=Aland+Islands&country_filter[]=American+Samoa" ; // filtering the string.. var paramsList = url.slice(url.indexOf("?")+1,url.length) ; var filteredList = paramsList.split("&") ; // an object to store arrays var objArr = {} ; // the below loop is obvious... we just remove the [] and +.. and split into pair of key and value.. and store as an array... for (var i=0, l=filteredList.length; i <l; i +=1 ) { var param = decodeURIComponent(filteredList[i].replace("[]","")).replace(/\+/g," ") ; var pair = param.split("=") ; if(!objArr[pair[0]]) { objArr[pair[0]] = [] ;} objArr[pair[0]].push(pair[1]); } console.log(objArr); 

Qui nous donnera …

 [object Object] { category_filter: ["Animals & Pet Supplies", "Fashion"], country_filter: ["Aland Islands", "American Samoa"], searchValue: ["Nike Webstore", "Bodyman"] } 

J'espère que ça aide …: D

Essayez de voir si ce modèle fonctionne pour vous

 (?:\?|&)(.+?)=([A-Z+%0-9]+) 

Exemple ici