Get relative URL from absolute URL

后端 未结 8 1864
自闭症患者
自闭症患者 2020-12-03 04:42

I want to get the relative URL from an absolute URL in JavaScript using regex and the replace method.

I tried the following but it is not working:

va         


        
相关标签:
8条回答
  • 2020-12-03 05:09

    Below snippet returns the absolute URL of the page.

     var myURL = window.location.protocol + "//" + window.location.host  + window.location.pathname;
    

    If you need only the relative url just use below snippet

     var myURL=window.location.pathname;
    

    Checkout get relative URL using Javascript for more details and multiple ways to achieve the same functionality.

    0 讨论(0)
  • 2020-12-03 05:10

    If by "relative URL" you mean the part of the string after the first single /, then it's simple:

    document.write(str.replace(/^(?:\/\/|[^/]+)*\//, ''));
    

    This matches all the characters up to the first single / in the string and replaces them with the empty string.

    In: http://localhost/my/page.jsp --> Out: /my/page.jsp

    0 讨论(0)
  • 2020-12-03 05:10

    Don't use low-level stuff like regexp etc. These things have been solved by so many other people. Especially the edge cases.

    Have a look at URI.js, it should do the job: http://medialize.github.io/URI.js/docs.html#relativeto

    var uri = new URI("/relative/path");
    // make path relative
    var relUri = uri.relativeTo("/relative/sub/foo/sub/file"); // returns a new URI instance
    // relUri == "../../../path"
    
    0 讨论(0)
  • 2020-12-03 05:13

    const url = new URL('https://www.example.com/path/#anchor?query=value');
    const rel = url.toString().substring(url.origin.length)
    
    console.log(rel)
    // Output: /path/#anchor?query=value
    
     

    0 讨论(0)
  • 2020-12-03 05:13

    URL.getRelativeURL

    There's an public-domain extension for the standard URL object called getRelativeURL.
    It's got a few cool tweaks like force reload, you should check it out!

    Try it live.       View on Gist.


    Example usage

    //syntax: <URL to convert>.getRelativeURL(<relative to this URL>)
    
    //link from Mypage to Google
    a = new URL("https://google.com/search");
    a.getRelativeURL("https://mypage.com")
    == "//google.com/search";
    
    //link from the current location.href
    a.getRelativeURL();
    
    //link from Olutsee to Polk
    var from = new URL("http://usa.com/florida/baker/olutsee");
    var to   = new URL("http://usa.com/florida/polk");
    to.getRelativeURL(from) == "../../polk";
    
    0 讨论(0)
  • 2020-12-03 05:17

    Below you can find script on that here we have only one problem which is one manual work, we want to add split attribute ie, if your site link is: Get relative URL from absolute URL

    we want to url as below: /questions/6263454/get-relative-url-from-absolute-url

    so in below code we have to add .com instead of .net ie, var res = at.split(".net"); here we want to add as per our requirement now i need to seperate after .com so code will be "var res = at.split(".com");".

    i think you guys got that point if you have still doubt let me know please and to see changes in code by inspecting:

    $(document).ready(function(){
    	$("a").each(function(){
        var at= $(this).attr("href");
        var res = at.split(".net");
        var res1 = res[0];
        var res2 = res[1];
        alert(res2);
        $(this).attr("href",res2);
      });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div id="banner-message">
      <p>Hello World</p>
      <a href="https://jsfiddle.net/boilerplate/jquery2">Change color</a>
    </div>
    <div id="banner-message">
      <p>Hello World</p>
      <a href="https://jsfiddle.net/boilerplate/jquery3">Change color</a>
    </div>

    0 讨论(0)
提交回复
热议问题