【问题标题】:Is it possible to get the name of a site using javascript?是否可以使用 javascript 获取站点的名称?
【发布时间】:2014-08-10 16:02:55
【问题描述】:

我想知道是否可以使用 javascript 获取网站的名称。

例如,如果我想获取网站的主 URL,我会使用

window.location.hostname

脚本将返回让我们说“stackoverflow.com”

现在,如果我希望脚本仅返回网站名称,在本例中为“stackoverflow”,该怎么办? (stackoverflow.com --> stackoverflow; facebook.com --> facebook 等等,换句话说,我想从 url 中删除第一个域)

谢谢!

【问题讨论】:

  • 您要删除第一个域或全部域(想想 domain.co.uk)?

标签: javascript


【解决方案1】:

你可以这样做:

window.location.hostname.split('.').slice(0,-1).join('.')

将主机名按 .'s 分割成一个数组

["stackoverflow", "com"]

从数组中删除最后一个元素

["stackoverflow"]

然后将数组重新连接在一起。

如果你有一个像“dev.yoursite.com”这样的网址,我会这样做,你会得到“dev.yoursite”

【讨论】:

  • www.ebay.co.uk 这样的场景呢?然后你回来www.ebay.co
  • 谢谢大家,尤其是 Dave,他的解决方案有效!
【解决方案2】:

我会做正则表达式。但它有点丑:

location.hostname.replace(/^(www.|)([\w]+)(\..+|)/g, "$2")

【讨论】:

    【解决方案3】:

    对于您提出问题的方式,您似乎正试图将其存档在单行 javascript 函数中。
    那我很害怕,没有简单的方法可以做到...

    许多示例建议按点拆分,但随后仅适用于具有一级和二级域名的主机名。

    当主机名变得更复杂时..这些解决方案通常会失败。
    例如。

    • 子域 (mail.example.com)
    • 组合域 (.co.uk)
    • 等等……

    可以给你几个例子来阅读并找出哪一个适合你的需要。

    简而言之..
    如果您想要一条线,那么容易做到,而且神奇的线可以做到这一点......
    答案是否定的,这是不可能的(适用于所有情况的单一解决方案)。

    但是,如果您喜欢学习、尝试、阅读并告知它...那么是的.. 绝对
    这比较复杂,但可以做到。

    因此,请提供一个更详细的问题,并附上示例以及您迄今为止为解决该问题所做的尝试,我们很乐意为您提供更详细的答案。

    【讨论】:

    • 感谢您发布的链接。无论如何,这个问题只是出于好奇目的而发布的。我会看一下您链接的指南和示例。再次感谢
    • 那太好了!我很高兴这些信息和链接可以帮助您了解更多信息,或者至少更好地了解它的工作原理。
    猜你喜欢
    • 2016-06-22
    • 2016-08-24
    • 2015-06-15
    • 2018-04-16
    • 2012-12-20
    • 2015-12-09
    • 2023-03-24
    • 1970-01-01
    • 2019-08-24
    相关资源
    最近更新 更多