Javascript 找到从中获取站点名称的通用方法';使用Jquery访问web站点

Javascript 找到从中获取站点名称的通用方法';使用Jquery访问web站点,javascript,regex,url,Javascript,Regex,Url,我正在尝试使用JQuery在我的chrome扩展中使用任何站点的名称(只是一个没有任何子域名的域名)。在大多数情况下我都能找到。但我在几个角落的案子中失败了。这是我到现在为止所做的 host_url = window.location.hostname; 这只提供主机名剥离页面url、slug或params https://ap2.salesforce.com/_ui/core/chatter/ui/ChatterPage -> ap2.salesforce.com

我正在尝试使用JQuery在我的chrome扩展中使用任何站点的名称(只是一个没有任何子域名的域名)。在大多数情况下我都能找到。但我在几个角落的案子中失败了。这是我到现在为止所做的

host_url = window.location.hostname;
这只提供主机名剥离页面url、slug或params

   https://ap2.salesforce.com/_ui/core/chatter/ui/ChatterPage ->
   ap2.salesforce.com

   http://go.sap.com/support.html -> go.sap.com

   http://www.beaf.com/ -> beaf.com

http://www.digitalclicks.co.uk -> digitalclicks.co.uk
但我如何才能只访问域名,因为要删除子域,我可以将其拆分并获得第二个元素,这将为我提供
salesforce、sap、beaf

if (full_domain.split(".").length > 2){
    domain_name =  full_domain.split(".")[1]; // handle the subdomain ie. http://go.sap.com
  }else{
    domain_name =  full_domain.split(".")[0]; //for no subdomain www.beaf.com
  }
但是我在digitalclicks.co.uk上失败了,因为这里的域名是第一位的。我必须找到一个通用的方法来解决这个问题。
我如何才能为所有顶级域名做到这一点???

从任何url提取域名。
http://www.
域名
.co.uk/sub1/sub2/…

它就是这样工作的:

  • 步骤:它摆脱http(s)://
  • 步骤:它摆脱了
    “/”
  • 创建一个按“”分割的数组
  • 将数组长度削减为3,以删除“.co.uk”f.e中的“uk
  • 反转
    数组
    ,因为域名必须是
    [1]

    您必须这样做,因为url可能类似于domainname.com
    (无子域)

  • 编辑: 在第1行中,我们需要添加这个
    +“/”
    ,以防url中没有斜杠。
    但是我们需要在下一步中添加斜杠来获取子字符串

    函数getDomainName(url){ var\u x=url.replace(/\w+:\s?\/\/.exec(url),“”)+“/”; var uux=x.子字符串(0,x.indexOf(“/”); var uuuxrev=uuuux.分割(“.”); 如果(uu xRev.length>3){ __xRev.pop(); } __xRev.reverse();
    return _xRev[1];//看起来您误解了“顶级域”是什么-它只是最右边的部分-在您的示例中是“com”和“uk”,还有“co.uk”作为第二级域。就url而言,您示例中的uk/com是顶级域,beaf/sap/salesforce/co是第二级域。因此,您案例中的digitalclicks实际上是一个子域。只是一些第二级域保留用于/每个国家的特定用途。您可以通过删除顶级域来实现这一点来自主机的域/url扩展名(remove.com.co.uk等)。现在字符串的最后一部分(由“.”分割)将是您想要的字符串。这些将仅是
    .com
    .co.uk
    站点?如果是,请使用以下正则表达式:
    (\w+(=\.co\.uk\124;\.com)
    感谢@freedomn-m,No@Druzion提供的信息,我必须让它适用于所有网站(大多数网站)在web上。一级和二级域可以有多个组合,因此我必须让两个案例起作用。1)如果现在是二级域,则只需拆分,并获得与
    go.sap.com
    2)如果有二级域,则拆分后的用户第一个元素。因此它应该适用于co.uk、co.in、co.en或任何其他组合我已经能够获得结果
    ap2.salesforce.com go.sap.com beaf.com digitalclicks.co.uk
    ,但我只希望sap、digitalclicks、beaf、salseforce(如果是一个词的话)。谢谢@John,让我做一个快速检查。@AkashShah现在这应该适用于我认为的任何情况。嘿,谢谢@John,这很好。前一个有点依赖于我们提供的输入。这看起来很有希望,并且已经通过了我输入的所有前8个URL组合。很好的工作!!一旦我对其他com进行快速测试,我将接受答案我有二进制文件。非常感谢老兄!!嘿@John,刚刚在我的应用程序中集成了代码并做了一些测试。它工作起来很有魅力。非常感谢道具的解释。正则表达式就是最好的选择。