แยกโดเมน - ห้องสมุดที่มีน้ำหนักเบามากที่เป็นของแข็ง
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' ] }
ทำไม?
ขึ้นอยู่กับกรณีการใช้งานและปริมาณที่ฉันขอแนะนำอย่างยิ่งต่อการแก้ปัญหานี้ด้วยตัวคุณเองโดยใช้ regex หรือวิธีการจัดการสตริงอื่น ๆ หลักของปัญหานี้คือคุณจำเป็นต้องรู้ส่วนต่อท้าย gtld และ cctld ทั้งหมดเพื่อแยกวิเคราะห์สตริง url ในโดเมนและโดเมนย่อยอย่างถูกต้องส่วนต่อท้ายเหล่านี้จะได้รับการอัปเดตเป็นประจำ นี่เป็นปัญหาที่แก้ไขแล้วไม่ใช่สิ่งที่คุณต้องการแก้ปัญหาด้วยตัวคุณเอง (เว้นแต่คุณเป็น google หรือบางอย่าง) หากคุณไม่จำเป็นต้องใช้ชื่อโฮสต์หรือชื่อโดเมนในการบีบไม่ลองและแยกออกจากวิธีนี้
url.split('/')[2]
ตั้งแต่ไม่คำนึงถึงเราเขียนftp
,ftps
,https
ชื่อโดเมนจะเป็นที่ดัชนี 2.