首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript从URL中提取域名

使用javascript从URL中提取域名
EN

Stack Overflow用户
提问于 2018-03-29 12:37:53
回答 1查看 2.3K关注 0票数 1

我需要一个通用的脚本/模式来从URL中提取主域名。下面的尝试失败了。

假设我有这个link1,并且需要提取主域名(google.co.uk)而没有子域(邮件)。我制作了这个脚本,它对.co.uk很好,但是对于只有一个顶级域名的网站,比如:.com.com,它会失败。

是否有更好的方法从任何URL中提取主域名?URL的构造如下:

代码语言:javascript
复制
https://(optional sub-domain)*(domain name with two or three top-level domain name)(optional forward slash followed by text)*

*指的是零次或多次。

代码语言:javascript
复制
var link1="https://mail.google.co.uk/link/link/link";
var url = new URL(link1);
var domain = url.hostname.split('.').slice(-3).join('.');
console.log("The domain name is: "+ domain);

在上面的代码中,我期望: google.co.uk

它可以工作,因为链接在顶级域名(.co.uk)中有两个部分,所以-3可以工作。但是我也需要代码来处理这个链接:

代码语言:javascript
复制
var link1="https://mail.google.com/link/link/link";

我需要输出为:google.com

但问题是,代码产生了:

代码语言:javascript
复制
mail.google.com

我只想要主域名:google.com

编辑:一些预期的输出示例如下:

1)在mail.google.co.uk中,应该是:google.co.uk

2)在mail.google.com中,应该是:google.com

3)在link.mail.google.com/link/link中,应该是:google.com

4)在link.link2.mail.google.com中,应该是:google.com

也就是说,只是主域名没有子域名或链接后的域名。顶级域名可以位于(.com、.net、.org等)的fom中。或以(.co.uk、.co.us等)的形式出现。顶级域名应该被捕获,如果它是一个部分或两个部分(我的代码只捕获两个部分)。

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 12:40:13

当然,如果你想

代码语言:javascript
复制
"mail.google.co.uk"

你可以用

代码语言:javascript
复制
url.host

或者,如果您希望它带有标题,请使用

代码语言:javascript
复制
url.origin

干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49556295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档