Ce face URLSearchParams
URLSearchParams se creează dintr-un text (cu sau fără ?), dintr-un obiect sau din perechi. get returnează prima valoare a unui parametru (sau null), getAll pe toate, set înlocuiește, append adaugă, delete și has șterg și verifică (opțional doar o anumită valoare).
toString() returnează textul codificat, fără ?. sort() ordonează parametrii după nume, util pentru adrese de cache. Obiectul se parcurge cu for...of, forEach, entries(), keys() și values().
Parametri
| Parametru | Descriere |
|---|---|
initial |
Opțional. Un text, un obiect sau un tablou de perechi. |
Ce returnează
Un obiect URLSearchParams.
Exemple
Exemplul 1: Citirea parametrilor
const p = new URLSearchParams("?q=laptop&culoare=negru&culoare=gri&pagina=2");
console.log(p.get("q"), p.get("culoare"), p.getAll("culoare"));
console.log(p.has("pagina"), p.has("culoare", "alb"), p.get("lipsa"));
console.log(Number(p.get("pagina")) + 1);
Rezultat
laptop negru [ 'negru', 'gri' ]
true false null
3
Exemplul 2: Construirea și modificarea
const p = new URLSearchParams({ q: "cărți & reviste", pagina: 1 });
p.set("pagina", 3);
p.append("filtru", "nou");
p.append("filtru", "redus");
p.delete("filtru", "nou");
p.sort();
console.log(p.toString());
console.log(`/cauta?${p}`);
Rezultat
filtru=redus&pagina=3&q=c%C4%83r%C8%9Bi+%26+reviste
/cauta?filtru=redus&pagina=3&q=c%C4%83r%C8%9Bi+%26+reviste
Exemplul 3: Parcurgere
const p = new URLSearchParams("oras=Iași&judet=IS");
for (const [cheie, valoare] of p) console.log(cheie, "=", valoare);
p.forEach((valoare, cheie) => console.log(`${cheie}: ${valoare}`));
console.log([...p.keys()], [...p.values()], p.entries().next().value);
Rezultat
oras = Iași
judet = IS
oras: Iași
judet: IS
[ 'oras', 'judet' ] [ 'Iași', 'IS' ] [ 'oras', 'Iași' ]
Greșeli frecvente
- Uiți că valorile citite sunt texte:
p.get("pagina") + 1dă"21". Transformă cuNumber(). - Te aștepți ca spațiul să fie codificat ca
%20.URLSearchParamsîl scrie ca+, formatul formularelor HTML.
Comenzi înrudite
new URL(): Desface o adresă URL în părți (domeniu, cale, parametri) și o construiește corect la loc.Object.fromEntries: Construiește un obiect dintr-o listă de perechi [cheie, valoare]; inversul lui Object.entries.encodeURIComponent / decodeURIComponent: Codifică un text ca să poată fi pus sigur într-o adresă URL (spații, diacritice, &, =) și îl decodifică.