引言
在 Web 开发中,我们常常需要对 URL 进行解析。其中,解析域名(Domain Name)是一个常见的需求。针对这个需求,有一个 npm 包叫做 parse-domain 可以帮助我们快速解析域名。
本文将介绍 parse-domain 的基本用法以及高级用法,希望能够对你在 Web 开发中解析 URL 时有所帮助。
基本用法
首先,我们需要在项目中安装 parse-domain:
npm install parse-domain
安装完成后,我们可以在项目中使用下面的代码解析域名:
const parseDomain = require('parse-domain'); const url = 'https://www.example.com/?q=test#hash'; const domain = parseDomain(url); console.log(domain); // { tld: 'com', domain: 'example', subdomain: 'www' }
解析出来的结果是一个对象,包含以下三个属性:
tld
: 顶级域名,例如 .com、.org 等。domain
: 二级域名,例如 example.com、example.org 等。subdomain
: 子域名,例如 www.example.com、blog.example.com 等。
如果 URL 中没有子域名,subdomain
属性会返回 null
。例如,对于以下 URL:
const urlWithoutSubdomain = 'https://example.com/?q=test#hash'; const domainWithoutSubdomain = parseDomain(urlWithoutSubdomain); console.log(domainWithoutSubdomain); // { tld: 'com', domain: 'example', subdomain: null }
除了传入完整的 URL,我们还可以在不知道 URL 协议的情况下解析域名。例如,对于以下的字符串:
const hostname = 'www.example.com'; const domainFromHostname = parseDomain(hostname); console.log(domainFromHostname); // { tld: 'com', domain: 'example', subdomain: 'www' }
高级用法
除了上面的基本用法,parse-domain 还提供了一些高级用法。
解析国际化域名(IDN)
国际化域名(IDN),也叫 Unicode 域名,使用了非 ASCII 字符集来表示域名。例如,一个使用中文字符集表示的域名:
https://中文域名.中国/
parse-domain 可以解析国际化域名,方法和解析普通域名类似。例如:
const idnHostname = 'https://中文域名.中国/'; const domainFromIdnHostname = parseDomain(idnHostname); console.log(domainFromIdnHostname); // { tld: '中国', domain: '中文域名', subdomain: null }
解析顶级域名(TLD)
parse-domain 不仅能解析域名的二级域名和子域名,还能同时解析出顶级域名。如果你只需要解析出顶级域名,可以用以下代码:
const domainOnlyTld = parseDomain('example.com', { privateTlds: true }); console.log(domainOnlyTld); // { tld: 'com', domain: 'example', subdomain: null }
注意,使用了 privateTlds: true
选项才能正确解析私有顶级域名。这个选项可以使用 parse-domain 自带的 TLD
常量来设置。
const { TLD } = require('parse-domain'); const domainOnlyTld = parseDomain('example.local', { privateTlds: TLD.PRIVATE }); console.log(domainOnlyTld); // { tld: 'local', domain: 'example', subdomain: null }
解析邮箱域名
除了解析网站域名,parse-domain 还能解析邮箱地址中的域名。例如:
const email = 'user@example.com'; const domainFromEmail = parseDomain(email); console.log(domainFromEmail); // { tld: 'com', domain: 'example', subdomain: null }
总结
本文介绍了 npm 包 parse-domain 的使用教程,包括基本用法和高级用法。parse-domain 可以快速解析出 URL 中的域名和顶级域名,解决了 Web 开发中常见的 URL 解析问题。希望这篇文章对你有所帮助,更多 npm 包的使用教程可以关注本站。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/parse-domain