![](/img/trans.png)
[英]How to strip all parameters and the domain name from a URL using javascript?
[英]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.