ho già segnalato a questa domanda: Get QueryString values with jQuery - ma come @Crescent Fresco ha sottolineato, tali esempi non trattano con gli array nella stringa di query (e oltre, sono un po 'lento Penso
. così ho cucinato la mia versione di questa funzione:
function getQueryString() {
var ret = {};
var parts = (document.location.toString().split('?')[1]).split('&');
for (var i = 0; i < parts.length; i++) {
var p = parts[i].split('=');
// so strings will be correctly parsed:
p[1] = decodeURIComponent(p[1].replace(/\+/g, " "));
if (p[0].search(/\[\]/) >= 0) { // then it's an array
p[0] = p[0].replace('[]','');
if (typeof ret[p[0]] != 'object') ret[p[0]] = [];
ret[p[0]].push(p[1]);
} else {
ret[p[0]] = p[1];
}
}
return ret;
}
Ma ci sono avvertimenti esso funziona solo su una stringa di query formata correttamente - non c'è il rilevamento degli errori Inoltre, non funziona su numerata array/indicizzati... . Quello è quando la matrice è definita nella stringa di query come:
Sarebbe banale aggiungere alla query .search() una regex per averlo trovato, ma io non sono il migliore esperto di espressioni regolari ... qualcuno ha delle idee?
Sì sì, con getUrlParam restituisce un array in base alle esigenze. – Hibiscus
hmm.,. perché l'hai quindi scelto come risposta corretta? – arnorhs
Perché, come ha appena detto ... "in realtà sì, [il mio suggerimento]" fa ciò di cui ha bisogno. –