구문 분석 도메인 -매우 견고한 경량 라이브러리
npm install parse-domain
const { fromUrl, parseDomain } = require("parse-domain");
실시 예 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' ] }
실시 예 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' ] }
왜?
유스 케이스와 볼륨에 따라 정규식이나 다른 문자열 조작 수단을 사용 하여이 문제를 직접 해결하지 않는 것이 좋습니다. 이 문제의 핵심은 URL 문자열을 도메인 및 하위 도메인으로 올바르게 구문 분석하기 위해 모든 gtld 및 cctld 접미사 를 알아야한다는 것 입니다. 이러한 접미사는 정기적으로 업데이트됩니다. 이것은 해결 된 문제이며 자신이 해결하려는 것이 아닙니다 (Google 또는 다른 사람이 아닌 한). 꼬집음에 호스트 이름이나 도메인 이름이 필요하지 않으면이 이름에서 벗어나려고 시도하지 마십시오.
url.split('/')[2]
관계없이 도메인 이름은 항상 인덱스 2입니다.ftp
ftps
https