⊗jsSpHPUSP 222 of 294 menu

Werken met URLSearchParams in JavaScript

Zoals je al weet, ontstaan er bij het werken met formulieren en GET-verzoeken in JavaScript strings van dit soort:

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

Soms moet je de waarde van een parameter in deze string programmatisch wijzigen. Code schrijven die dit doet, is niet erg handig. Daarom heeft JavaScript een speciale ingebouwde klasse URLSearchParams voor het werken met dergelijke strings.

Laten we een object van deze klasse aanmaken door onze string met parameters als parameter door te geven:

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

Laten we kijken welke methodes het gemaakte object heeft.

Waarde van een parameter ophalen

Met de methode get kun je de waarde van een parameter ophalen:

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

Laten we proberen de waarde van een niet-bestaande parameter op te halen:

let res = searchParams.get('x'); console.log(res); // geeft null weer

Controleren of een parameter aanwezig is

Met de methode has kun je controleren of een parameter aanwezig is. Laten we een bestaande parameter controleren:

let res = searchParams.has('a'); console.log(res); // geeft true weer

Laten we een niet-bestaande controleren:

let res = searchParams.has('x'); console.log(res); // geeft false weer

Omzetten naar een string

Met de methode toString kun je ons object terug omzetten naar een string:

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

Parameters wijzigen

Met de methode set kun je de waarde van een parameter wijzigen:

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

Laten we de wijzigingen controleren:

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

Parameters toevoegen

Met de methode set kun je ook een nieuwe parameter toevoegen:

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

Laten we de wijzigingen controleren:

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

Parameters toevoegen

Met de methode append kun je ook een nieuwe parameter toevoegen:

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

Laten we de wijzigingen controleren:

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

Laten we proberen een al bestaande parameter toe te voegen:

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

In dit geval voegt onze methode simpelweg een parameter met dezelfde naam aan het einde toe:

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

Hierin toont zich het verschil tussen de methodes set en append. De eerste wijzigt de bestaande parameter, terwijl de tweede simpelweg een dubbele toevoegt aan het einde.

Parameters verwijderen

Met de methode delete kun je parameters verwijderen:

searchParams.delete('b');

Laten we de wijzigingen controleren:

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

Parameters doorlopen met een lus

Parameters kunnen worden doorlopen met een lus:

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

Meerdere identieke parameters

Stel dat onze string meerdere identieke parameters bevat:

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

Met de methode getAll kun je een array met waarden van deze parameters ophalen:

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

Praktische opdrachten

Stel dat de volgende string met parameters gegeven is:

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

Voeg aan deze string nog een parameter test3 toe.

Verwijder uit deze string de parameter test2.

Wijzig de parameter test1 naar een nieuwe waarde.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren