parse-domain - perpustakaan ringan yang sangat solid
npm install parse-domain
const { fromUrl, parseDomain } = require("parse-domain");
Contoh 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' ] }
Contoh 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' ] }
Mengapa?
Bergantung pada use case dan volume, saya sangat menyarankan untuk tidak memecahkan masalah ini sendiri menggunakan regex atau cara manipulasi string lainnya. Inti dari masalah ini adalah bahwa Anda perlu mengetahui semua sufiks gtld dan cctld untuk mengurai string url dengan benar ke dalam domain dan subdomain, sufiks ini diperbarui secara berkala. Ini adalah masalah yang dipecahkan dan bukan yang ingin Anda selesaikan sendiri (kecuali jika Anda adalah google atau sesuatu). Kecuali Anda memerlukan nama host atau nama domain dalam keadaan darurat, jangan mencoba dan menguraikan jalan keluar dari yang ini.
url.split('/')[2]
Sejak terlepas dari kita menulisftp
,ftps
,https
, nama domain akan selalu berada di indeks 2.