w w w . w d . c h a t
🗣 Wd提问
js 获取二级域名
🤖 Ai回答
在 JavaScript 中,如果你想从当前网页的 URL 或一个给定的 URL 中获取二级域名(SecondLevel Domain, SLD),你需要先解析整个域名,并根据顶级域名(TLD)来判断哪些是二级域名。

常见方式

你可以使用 `window.location.hostname` 获取当前页面的主机名,然后进行处理。但要注意像 `.co.uk` 这样的公共后缀(public suffix),它们不是简单的两段式 TLD。

✅ 推荐方法:使用 [tldjs](https://github.com/oncletom/tld.js)

这是一个专门用于处理域名、提取子域名、主域名等信息的库。

安装:

bash
npm install tldjs

使用示例:

javascript
const tldjs = require('tldjs');

const hostname = 'https://sub.blog.example.co.uk';

// 获取主域名(不包含子域名)
console.log(tldjs.getDomain(hostname)); // example.co.uk

// 获取所有子域名部分
console.log(tldjs.getSubdomain(hostname)); // sub.blog

// 获取一级域名(含 TLD)
console.log(tldjs.getPublicSuffix(hostname)); // co.uk

// 获取主机名
console.log(tldjs.getHostname(hostname)); // sub.blog.example.co.uk

🔧 手动实现(简单场景)

如果你的应用场景比较简单,比如只处理常见的 `.com`, `.net`, `.org` 等,可以使用以下代码:

javascript
function getSecondLevelDomain() {
const hostname = window.location.hostname;
const parts = hostname.split('.').reverse();

// 处理类似 .com.cn .co.uk 的情况
if (['co', 'com', 'net', 'org', 'gov', 'edu'].includes(parts[1])) {
return parts[2] + '.' + parts[1];
} else {
return parts[1] + '.' + parts[0];
}
}

console.log(getSecondLevelDomain());

⚠️ 注意:这个方法不能正确处理所有复杂的公共后缀(如 `.co.uk`、`.com.cn`),仅适用于简单场景。

🧠 示例说明

| URL | Hostname | 主域名(SLD) |

| https://a.b.example.com | a.b.example.com | example.com |
| https://blog.example.co.uk | blog.example.co.uk | example.co.uk |
| https://www.test.com | www.test.com | test.com |

💡 小技巧:浏览器安全限制

在浏览器中,你无法直接访问其他网站的 `document.cookie` 或 `localStorage`。
如果你要跨域获取二级域名的信息,需要服务端配合或使用 iframe + postMessage。

如需进一步帮助,请告诉我你的具体需求,例如:
是否要支持 `.co.uk` 类型?
是从当前页面还是任意 URL 提取?
是前端运行还是 Node.js?

我可以为你定制更合适的解决方案。
0
📍
IP地址 67.211.91.78
🔍
搜索次数 7
提问时间 2025-12-14 05:55:15

📣 商家广告

广东过滤器

广东过滤器

豌豆Ai站群搜索引擎系统

豌豆Ai站群搜索引擎系统

单字符域名

单字符域名

🛒 域名购买

热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊
💬选择任意群聊,与同好交流分享

🔗 友情链接

🧰

站长工具

📢

温馨提示

本站所有 ❓️ 问答 由Ai自动创作,内容仅供参考,若有误差请用"联系"里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 《豌豆Ai站群搜索引擎系统 V.25.10.25》 搭建本站。

上一篇 344940 344941 344942 下一篇