Εργασία με 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

Με τη βοήθεια της ιδιότητας host μπορούμε να πάρουμε το όνομα domain με τη θύρα:

javascriptlet res = url.host;
console.log(res); // θα εμφανίσει 'site.ru:3000'

Όνομα host

Με τη βοήθεια της ιδιότητας hostname μπορούμε να πάρουμε το όνομα domain:

javascriptlet res = url.hostname;
console.log(res); // θα εμφανίσει 'site.ru'

Θύρα

Με τη βοήθεια της ιδιότητας port μπορούμε να πάρουμε τη θύρα:

javascriptlet res = url.port;
console.log(res); // θα εμφανίσει '3000'

Μονοπάτι

Με τη βοήθεια της ιδιότητας pathname μπορούμε να απορρίψουμε το όνομα domain, παίρνοντας το μονοπάτι:

javascriptlet res = url.pathname;
console.log(res); // θα εμφανίσει '/dir/eee/page.html#show?a=1&b=2&c=3'

Hash

Με τη βοήθεια της ιδιότητας hash μπορούμε να πάρουμε την τιμή 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