⊗jsSpHPUSP 222 of 294 menu

Lavorare con URLSearchParams in JavaScript

Come già sapete, quando si lavora con moduli e richieste GET in JavaScript, si generano stringhe di questo tipo:

let paramsString = 'a=1&b=2&c=3';

A volte è necessario modificare a livello di codice il valore di un parametro in questa stringa. Scrivere codice che fa questo non è molto conveniente. Pertanto, in JavaScript è integrata una speciale classe URLSearchParams per lavorare con questo tipo di stringhe.

Creiamo un oggetto di questa classe, passando come parametro la nostra stringa con i parametri:

let paramsString = 'a=1&b=2&c=3'; let searchParams = new URLSearchParams(paramsString);

Vediamo quali metodi ha l'oggetto creato.

Ottenere il valore di un parametro

Utilizzando il metodo get si può ottenere il valore di un parametro:

let res = searchParams.get('a'); console.log(res);

Proviamo a ottenere il valore di un parametro inesistente:

let res = searchParams.get('x'); console.log(res); // restituirà null

Verificare la presenza di un parametro

Utilizzando il metodo has si può verificare la presenza di un parametro. Verifichiamo un parametro esistente:

let res = searchParams.has('a'); console.log(res); // restituirà true

Verifichiamone uno inesistente:

let res = searchParams.has('x'); console.log(res); // restituirà false

Convertire in stringa

Utilizzando il metodo toString si può convertire il nostro oggetto nuovamente in una stringa:

let res = searchParams.toString(); console.log(res); // restituirà 'a=1&b=2&c=3'

Modificare i parametri

Utilizzando il metodo set si può modificare il valore di un parametro:

searchParams.set('b', 'x');

Verifichiamo le modifiche:

let res = searchParams.toString(); console.log(res); // restituirà 'a=1&b=x&c=3'

Aggiungere parametri

Utilizzando il metodo set si può anche aggiungere un nuovo parametro:

searchParams.set('d', '4');

Verifichiamo le modifiche:

let res = searchParams.toString(); console.log(res); // restituirà 'a=1&b=2&c=3&d=4'

Aggiungere parametri

Utilizzando il metodo append si può anche aggiungere un nuovo parametro:

searchParams.append('d', '4');

Verifichiamo le modifiche:

let res = searchParams.toString(); console.log(res); // restituirà 'a=1&b=2&c=3&d=4'

Proviamo ad aggiungere un parametro già esistente:

searchParams.append('a', '4');

In questo caso, il nostro metodo aggiungerà semplicemente un parametro con lo stesso nome alla fine:

let res = searchParams.toString(); console.log(res); // restituirà 'a=1&b=2&c=3&a=4'

In questo sta la differenza tra i metodi set e append. Il primo modificherà il parametro esistente, mentre il secondo aggiungerà semplicemente un suo duplicato alla fine.

Eliminare parametri

Utilizzando il metodo delete si possono eliminare parametri:

searchParams.delete('b');

Verifichiamo le modifiche:

let res = searchParams.toString(); console.log(res); // restituirà 'a=1&c=3'

Iterare sui parametri con un ciclo

I parametri possono essere iterati con un ciclo:

for (let p of searchParams) { console.log(p); }

Parametri multipli con lo stesso nome

Supponiamo che nella nostra stringa ci siano più parametri con lo stesso nome:

let paramsString = 'a=1&a=2b=2&c=3';

Utilizzando il metodo getAll si può ottenere un array dei valori di questi parametri:

let res = searchParams.getAll('a'); console.dir(res); // restituirà [1, 2]

Compiti pratici

Sia data la seguente stringa con parametri:

let paramsString = 'test1=param1&test2=param2&test3=param3';

Aggiungete a questa stringa un altro parametro test3.

Rimuovete da questa stringa il parametro test2.

Modificate il parametro test1 con un nuovo valore.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta