如何在 JavaScript 中提取 URL 的主机名部分

2022-08-29 23:22:13

有没有一种非常简单的方法可以从完整的URL开始:

document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"

并仅提取主机部分:

aaa.bbb.ccc.com

必须有一个JavaScript函数可以可靠地做到这一点,但我找不到它。


答案 1

假设您有一个具有以下地址的页面:。在页面代码中使用以下内容来实现这些结果:http://sub.domain.com/virtualPath/page.htm

  • window.location.host:您将获得或sub.domain.com:8080sub.domain.com:80
  • window.location.hostname:你会得到sub.domain.com
  • window.location.protocol:你会得到http:
  • window.location.port:您将获得或808080
  • window.location.pathname:你会得到/virtualPath
  • window.location.origin:你会得到http://sub.domain.com *****

更新:关于 .origin

正如 ref 所述,浏览器兼容性尚不清楚。我已经在chrome中检查了它,如果端口不是80,如果端口是80,它就会返回。window.location.originhttp://sub.domain.com:porthttp://sub.domain.com

特别感谢@torazaburo向我提及这一点。


答案 2

您可以将位置协议和主机连接起来:

var root = location.protocol + '//' + location.host;

对于一个网址,让我们说,它将返回'http://stackoverflow.com/questions''http://stackoverflow.com'