How to extract the hostname portion of a URL in JavaScript
Solution 1:
suppose that you have a page with this address: http://sub.domain.com/virtualPath/page.htm
. use the following in page code to achive those results:
-
window.location.host
: you'll getsub.domain.com:8080
orsub.domain.com:80
-
window.location.hostname
: you'll getsub.domain.com
-
window.location.protocol
: you'll gethttp:
-
window.location.port
: you'll get8080
or80
-
window.location.pathname
: you'll get/virtualPath
-
window.location.origin
: you'll gethttp://sub.domain.com
*****
Update: about the .origin
***** As the ref states, browser compatibility for window.location.origin
is not clear. I've checked it in chrome and it returned http://sub.domain.com:port
if the port is anything but 80, and http://sub.domain.com
if the port is 80.
Special thanks to @torazaburo for mentioning that to me.
Solution 2:
You could concatenate the location protocol and the host:
var root = location.protocol + '//' + location.host;
For a url, let say 'http://stackoverflow.com/questions'
, it will return 'http://stackoverflow.com'
Solution 3:
The accepted answer didn't work for me since wanted to be able to work with any arbitary url's, not just the current page URL.
Take a look at the URL
object:
var url = new URL("http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah");
url.protocol; // "http:"
url.hostname; // "aaa.bbb.ccc.com"
url.pathname; // "/asdf/asdf/sadf.aspx"
url.search; // "?blah"