How to get the URL without any parameters in JavaScript?

前端 未结 9 1428
终归单人心
终归单人心 2020-12-04 09:12

If I use:

alert(window.location.href);

I get everything including query strings. Is there a way to just get the main url part, for example:

相关标签:
9条回答
  • 2020-12-04 09:32

    Every answer is rather convoluted. Here:

    var url = window.location.href.split('?')[0];
    

    Even if a ? isn't present, it'll still return the first argument, which will be your full URL, minus query string.

    It's also protocol-agnostic, meaning you could even use it for things like ftp, itunes.etc.

    0 讨论(0)
  • 2020-12-04 09:32

    I'm LATE to the party, but I had to solve this recently, figured I'd share the wealth.

    const url = window.location.origin + window.location.pathname
    //http://example.com/somedir/somefile/
    

    window.location.origin will give you the base url, in our test case: http://example.com

    window.location.pathname will give you the route path (after the base url), in our test case /somedir/somefile

    SOLUTION 2

    You can simply do the following to get rid of the query parameters.

    const url = window.location.href.split('?')[0]

    0 讨论(0)
  • 2020-12-04 09:41

    You can use a regular expression: window.location.href.match(/^[^\#\?]+/)[0]

    0 讨论(0)
  • 2020-12-04 09:42

    You can concat origin and pathname, if theres present a port such as example.com:80, that will be included as well.

    location.origin + location.pathname
    
    0 讨论(0)
  • 2020-12-04 09:44
    var url = "tp://mysite.com/somedir/somefile/?foo=bar&loo=goo"    
    
    url.substring(0,url.indexOf("?"));
    
    0 讨论(0)
  • 2020-12-04 09:45

    If you look at the documentation you can take just the properties you're interested in from the window object i.e.

    protocol + '//' + hostname + pathname
    
    0 讨论(0)
提交回复
热议问题