parse-domain - une bibliothèque légère très solide
npm install parse-domain
const { fromUrl, parseDomain } = require("parse-domain");
Exemple 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' ] }
Exemple 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' ] }
Pourquoi?
Selon le cas d'utilisation et le volume, je déconseille fortement de résoudre ce problème vous-même en utilisant l'expression régulière ou d'autres moyens de manipulation de chaînes. Le cœur de ce problème est que vous devez connaître tous les suffixes gtld et cctld pour analyser correctement les chaînes d'URL dans le domaine et les sous-domaines, ces suffixes sont régulièrement mis à jour. C'est un problème résolu et pas un que vous voulez résoudre vous-même (sauf si vous êtes google ou quelque chose). À moins que vous n'ayez besoin du nom d'hôte ou du nom de domaine à la rigueur, n'essayez pas d'analyser votre chemin hors de celui-ci.
url.split('/')[2]
Depuis quel que nous écrivonsftp
,ftps
,https
, le nom de domaine sera toujours à l' index 2.