javascript window location href without hash?

JavascriptLocationSubstring

Javascript Problem Overview


I have:

var uri = window.location.href;

That provides http://example.com/something#hash

What's the best and easiest way to get the entire path without the #hash?

uri    = http://example.com/something#hash
nohash = http://example.com/something

I tried using location.origin+location.pathname which doesn't work in every browser. I tried using location.protocol+'//'+location.host+location.pathname which looks like kind of a crappy solution to me.

What is the best and easiest way to do so? maybe I query for location.hash and try to substr() this from the uri?

Javascript Solutions


Solution 1 - Javascript

location.protocol+'//'+location.host+location.pathname is the correct syntax if you do not care about port number or querystring

If you do care:

https://developer.mozilla.org/en/DOM/window.location

location.protocol+'//'+
  location.host+
  location.pathname+
 (location.search?location.search:"")

or

location.protocol+'//'+
  location.hostname+
 (location.port?":"+location.port:"")+
  location.pathname+
 (location.search?location.search:"")

You can also just do a location.href.replace(location.hash,"")
It will remove EVERYTHING from the FIRST # and on regardless of other hash characters in the string

Alternatively create a URL object:

const url = new URL("https://www.somepage.com/page.hmtl#anchor") //(location.href);
console.log(url)
url.hash="";
console.log(url)

Solution 2 - Javascript

var uri = window.location.href.split("#")[0];

// Returns http://example.com/something

var hash = window.location.hash;

// Returns #hash

Solution 3 - Javascript

location.href.replace(location.hash,"")

Solution 4 - Javascript

Is the universal way also the smaller?

location.href.split(/\?|#/)[0]

Solution 5 - Javascript

Shorter solutions:

  • without query string and hash location.href.split(location.search||location.hash||/[?#]/)[0]

  • only without hash location.href.split(location.hash||"#")[0]

(I usually use the first one)

Solution 6 - Javascript

ES2020:

let [uri, hash] = location.href.split("#"); console.log(uri, hash);

location.hash = "#myhash";

[uri, hash] = location.href.split("#");
console.log(uri, hash);

Solution 7 - Javascript

I was looking for this answer:

`${window.location.origin}${window.location.pathname}${window.location.search}`

Solution 8 - Javascript

location.href = window.location.href.split("write here your code to delete in your URL")[0] + "write here your final destination";

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmattView Question on Stackoverflow
Solution 1 - JavascriptmplungjanView Answer on Stackoverflow
Solution 2 - JavascriptNick BruntView Answer on Stackoverflow
Solution 3 - JavascriptQuentinView Answer on Stackoverflow
Solution 4 - JavascriptAlain BeauvoisView Answer on Stackoverflow
Solution 5 - JavascriptSebastien P.View Answer on Stackoverflow
Solution 6 - JavascriptRobertoNoveloView Answer on Stackoverflow
Solution 7 - JavascriptFredView Answer on Stackoverflow
Solution 8 - JavascriptVittrixView Answer on Stackoverflow