parsowana domena - bardzo solidna i lekka biblioteka
npm install parse-domain
const { fromUrl, parseDomain } = require("parse-domain");
Przykład 1
parseDomain(fromUrl("http://www.example.com/12xy45"))
{ type: 'LISTED',
hostname: 'www.example.com',
labels: [ 'www', 'example', 'com' ],
icann:
{ subDomains: [ 'www' ],
domain: 'example',
topLevelDomains: [ 'com' ] },
subDomains: [ 'www' ],
domain: 'example',
topLevelDomains: [ 'com' ] }
Przykład 2
parseDomain(fromUrl("http://subsub.sub.test.ExAmPlE.coM/12xy45"))
{ type: 'LISTED',
hostname: 'subsub.sub.test.example.com',
labels: [ 'subsub', 'sub', 'test', 'example', 'com' ],
icann:
{ subDomains: [ 'subsub', 'sub', 'test' ],
domain: 'example',
topLevelDomains: [ 'com' ] },
subDomains: [ 'subsub', 'sub', 'test' ],
domain: 'example',
topLevelDomains: [ 'com' ] }
Czemu?
W zależności od przypadku użycia i objętości zdecydowanie odradzam samodzielne rozwiązywanie tego problemu za pomocą wyrażeń regularnych lub innych metod manipulacji ciągami. Istotą tego problemu jest to, że musisz znać wszystkie sufiksy gtld i cctld, aby poprawnie parsować ciągi adresów URL w domenie i poddomenach. Sufiksy te są regularnie aktualizowane. To rozwiązany problem, a nie taki, który chcesz rozwiązać samodzielnie (chyba że jesteś google lub coś takiego). Chyba, że potrzebujesz nazwy hosta lub nazwy domeny w skrócie, nie próbuj parsować swojego wyjścia.
url.split('/')[2]
Ponieważ niezależnie od piszemyftp
,ftps
,https
, nazwa domeny będzie zawsze na indeksie 2.