⊗jsSpHPUSP 222 of 294 menu

Praca z URLSearchParams w JavaScript

Jak już wiesz, podczas pracy z formularzami i zapytaniami GET w JavaScript pojawiają się ciągi znaków tego rodzaju:

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

Czasami trzeba programowo zmienić wartość jakiegoś parametru z tego ciągu. Pisanie kodu, który to robi, nie jest zbyt wygodne. Dlatego w JavaScript wbudowana jest specjalna klasa URLSearchParams do pracy z takimi ciągami znaków.

Stwórzmy obiekt tej klasy, przekazując jako parametr nasz ciąg znaków z parametrami:

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

Sprawdźmy, jakie metody ma utworzony obiekt.

Pobieranie wartości parametru

Za pomocą metody get można uzyskać wartość parametru:

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

Spróbujmy uzyskać wartość nieistniejącego parametru:

let res = searchParams.get('x'); console.log(res); // wyświetli null

Sprawdzanie obecności parametru

Za pomocą metody has można sprawdzić obecność parametru. Sprawdźmy istniejący parametr:

let res = searchParams.has('a'); console.log(res); // wyświetli true

Sprawdźmy nieistniejący:

let res = searchParams.has('x'); console.log(res); // wyświetli false

Konwersja na ciąg znaków

Za pomocą metody toString można przekształcić nasz obiekt z powrotem na ciąg znaków:

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

Zmiana parametrów

Za pomocą metody set można zmienić wartość parametru:

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

Sprawdźmy zmiany:

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

Dodawanie parametrów

Za pomocą metody set można również dodać nowy parametr:

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

Sprawdźmy zmiany:

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

Dodawanie parametrów

Za pomocą metody append można również dodać nowy parametr:

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

Sprawdźmy zmiany:

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

Spróbujmy dodać już istniejący parametr:

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

W tym przypadku nasza metoda po prostu doda parametr o tej samej nazwie na koniec:

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

Na tym polega różnica między metodami set i append. Pierwsza zmieni istniejący parametr, a druga po prostu doda jego duplikat na koniec.

Usuwanie parametrów

Za pomocą metody delete można usuwać parametry:

searchParams.delete('b');

Sprawdźmy zmiany:

let res = searchParams.toString(); console.log(res); // wyświetli 'a=1&c=3'

Iteracja po parametrach za pomocą pętli

Parametry można iterować za pomocą pętli:

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

Kilka identycznych parametrów

Załóżmy, że w naszym ciągu znajduje się kilka identycznych parametrów:

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

Za pomocą metody getAll można uzyskać tablicę wartości tych parametrów:

let res = searchParams.getAll('a'); console.dir(res); // wyświetli [1, 2]

Zadania praktyczne

Załóżmy, że dany jest następujący ciąg znaków z parametrami:

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

Dodaj do tego ciągu jeszcze jeden parametr test3.

Usuń z tego ciągu parametr test2.

Zmień parametr test1 na nową wartość.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć