Работа с URL в JavaScript

В JavaScript иногда приходится работать с адресами ссылок. Для этого предназначен класс URL, позволяющий получать и изменять части адресов.

Посмотрим работу с ним на примере следующего адреса:

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

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

let url = new URL(path);

Давайте посмотрим, какие свойства есть у созданного объекта.

Протокол

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

let res = url.protocol; console.log(res); // выведет 'http://'

Хост

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

let res = url.host; console.log(res); // выведет 'site.ru:3000'

Имя хоста

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

let res = url.hostname; console.log(res); // выведет 'site.ru'

Порт

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

let res = url.port; console.log(res); // выведет '3000'

Путь

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

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

Хеш

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

let res = url.hash; console.log(res); // выведет 'show'

GET параметры

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

let res = url.search; console.log(res); // выведет 'a=1&b=2&c=3'

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

let res = url.searchParams; console.log(res); // выведет объект класса URLSearchParams