簡體   English   中英

使用JavaScript從URL提取域名

[英]Extracting the domain name from a URL using javascript

我需要一個通用的腳本/模式來從URL中提取主要域名。 我有以下嘗試失敗。

假設我有此link1,並且需要提取主域名(google.co.uk),而沒有子域(郵件)。 我制作了此腳本,該腳本在.co.uk可以正常使用,但在具有一個頂級域名(如.com.com網站上將失敗。

有沒有更好的方法可以從ANY URL中提取主域名? URL的構造如下:

https://(optional sub-domain)*(domain name with two or three top-level domain name)(optional forward slash followed by text)*

*表示零次或多次。

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起作用。 但是我也需要代碼來使用此鏈接:

var link1="https://mail.google.com/link/link/link";

我需要的輸出是: google.com

但是問題是代碼產生了:

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等)的形式,也可以是(.co.uk,.co.us等)的形式。 如果頂級域名是一個部分或兩個部分(我的代碼僅捕獲兩個部分),則應將其捕獲。

當然可以

"mail.google.co.uk"

你可以用

url.host

或者如果您想要帶有標題,請使用

url.origin

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM