Работа с URL в JavaScript

В JavaScript понякога се налага да работим с адреси на връзки. За това е предназначен класът URL, който позволява получаване и промяна на части от адресите.

Нека разгледаме работата с него на примера на следния адрес:

javascriptlet path = 'http://site.ru:3000/dir/eee/page.html#show?a=1&b=2&c=3';

Нека създадем обект от клас URL, като му подадем нашето адрес като параметър:

javascriptlet url = new URL(path);

Нека разгледаме какви свойства има създадения обект.

Протокол

С помощта на свойството protocol можем да получим протокола:

javascriptlet res = url.protocol;
console.log(res); // ще изведе 'http://'

Хост

С помощта на свойството host можем да получим домейн името с порта:

javascriptlet res = url.host;
console.log(res); // ще изведе 'site.ru:3000'

Име на хоста

С помощта на свойството hostname можем да получим домейн името:

javascriptlet res = url.hostname;
console.log(res); // ще изведе 'site.ru'

Порт

С помощта на свойството port можем да получим порта:

javascriptlet res = url.port;
console.log(res); // ще изведе '3000'

Път

С помощта на свойството pathname можем да отрежем домейн името, получавайки пътя:

javascriptlet res = url.pathname;
console.log(res); // ще изведе '/dir/eee/page.html#show?a=1&b=2&c=3'

Хеш

С помощта на свойството hash можем да получим стойността на хеша:

javascriptlet res = url.hash;
console.log(res); // ще изведе 'show'

GET параметри

С помощта на свойството search можем да получим низа от GET параметрите:

javascriptlet res = url.search;
console.log(res); // ще изведе 'a=1&b=2&c=3'

С помощта на свойството searchParams можем да получим GET параметрите под формата на обект от клас URLSearchParams:

javascriptlet res = url.searchParams;
console.log(res); // ще изведе обект от клас URLSearchParams