javascriptjqueryparse-url

Parse an URL in JavaScript


How do I parse an URL with JavaScript (also with jQuery)?

For instance I have this in my string,

url = "http://example.com/form_image_edit.php?img_id=33"

I want to get the value of img_id

I know I can do this easily with PHP with parse_url(), but I want to know how it is possible with JavaScript.


Solution

  • You can use a trick of creating an a-element, add the url to it, and then use its Location object.

    function parseUrl( url ) {
        var a = document.createElement('a');
        a.href = url;
        return a;
    }
    
    parseUrl('http://example.com/form_image_edit.php?img_id=33').search
    

    Which will output: ?img_id=33


    You could also use php.js to get the parse_url function in JavaScript.


    Update (2012-07-05)

    I would recommend using the excellent URI.js library if you need to do anything more than super simple URL handling.