有没有一个简单的方法可以从一个完整的URL开始:
document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"
只提取主部分:
aaa.bbb.ccc.com
肯定有JavaScript函数能可靠地做到这一点,但我找不到。
有没有一个简单的方法可以从一个完整的URL开始:
document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"
只提取主部分:
aaa.bbb.ccc.com
肯定有JavaScript函数能可靠地做到这一点,但我找不到。
当前回答
Try
document.location.host
or
document.location.hostname
其他回答
我的解决方案适用于所有浏览器,包括微软Internet Explorer,不使用任何正则表达式,它的灵感来自Noah Cardoza和Martin Konecny的解决方案:
function getHostname(href) {
if (typeof URL === 'object') {
// workaround for MS IE 11 (Noah Cardoza's solution but without using Object.assign())
var dummyNode = document.createElement('a');
dummyNode.href = href;
return dummyNode.hostname;
} else {
// Martin Konecny's solution
return new URL(href).hostname;
}
}
使用文档。位置对象及其主机或主机名属性。
alert(document.location.hostname); // alerts "stackoverflow.com"
让我们假设你有这样的url路径:
http://localhost:4200/landing?query=1#2
因此,你可以通过位置值为自己服务,如下所示:
window.location.hash: "#2"
window.location.host: "localhost:4200"
window.location.hostname: "localhost"
window.location.href: "http://localhost:4200/landing?query=1#2"
window.location.origin: "http://localhost:4200"
window.location.pathname: "/landing"
window.location.port: "4200"
window.location.protocol: "http:"
window.location.search: "?query=1"
现在我们可以得出结论,你在寻找:
window.location.hostname
Try
document.location.host
or
document.location.hostname
我知道这有点晚了,但我用一些ES6语法创建了一个干净的小函数
function getHost(href){
return Object.assign(document.createElement('a'), { href }).host;
}
它也可以用ES5写成
function getHost(href){
return Object.assign(document.createElement('a'), { href: href }).host;
}
IE当然不支持Object。指派,但在我这行,那不重要。