Parse-Domain - eine sehr solide, leichte Bibliothek
npm install parse-domain
const { fromUrl, parseDomain } = require("parse-domain");
Beispiel 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' ] }
Beispiel 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' ] }
Warum?
Je nach Anwendungsfall und Volumen empfehle ich dringend, dieses Problem nicht selbst mit Regex oder anderen Mitteln zur Manipulation von Zeichenfolgen zu lösen. Der Kern dieses Problems besteht darin, dass Sie alle Suffixe gtld und cctld kennen müssen, um URL-Zeichenfolgen ordnungsgemäß in Domänen und Subdomänen zu analysieren. Diese Suffixe werden regelmäßig aktualisiert. Dies ist ein gelöstes Problem und keines, das Sie selbst lösen möchten (es sei denn, Sie sind Google oder so). Versuchen Sie nicht, Ihren Weg aus diesem heraus zu analysieren, es sei denn, Sie benötigen zur Not den Host- oder Domainnamen.
url.split('/')[2]
unabhängig Da der wir schreibenftp
,ftps
,https
, wird der Domainname im Index immer 2.