在没有使用预定义的tld列表的情况下,在没有tld的情况下从url有效地获取根域

时间:2017-01-14 15:34:46

标签: javascript regex

我的问题很简单。例如,如何使用正则表达式从域中删除tld,而没有已知存在的每个可能tld的预定义列表。这看起来很简单,但是我还没有在stackoverflow上找到一个没有使用列表的谷歌或者没有使用像.co.uk或com.au这样的各种tld使用pop方法简单地说它没用。为此,此方案已删除http://www. or http://

google.com --> google 
google.co.uk --> google

stackoverflow.com --> stackoverflow

谢谢

1 个答案:

答案 0 :(得分:0)

它是不可能的(如果你关心子域名)

如果您不关心子域名:

domain=url.split(".").shift();

如果您关心子域名, 最正确的方法,(约80%正确)将从网址中删除所有内容,然后取最后一个:

domain=url.split(".").filter(e=>e.length>3).pop();
if(domain==undefined){
  domain=url.split(".").pop();
 }

这会因account.db.de stadt.hamburg等而失败,但如果没有tld列表,这是不可能的。