Patrique
Patrique

Reputation: 253

Take a url variable with regex

I have the following url

http://www.test.info/link/?url=http://www.site2.com

How do I get the value of the url parameter with regular expressions in javascript?

Thanks

Upvotes: 10

Views: 24395

Answers (5)

Vasyl Zubach
Vasyl Zubach

Reputation: 46

On the answer code:

function extractUrlValue(key, url)
{
    if (typeof(url) === 'undefined')
        url = window.location.href;
    var match = url.match('[?&]' + key + '=([^&#]+)');
    return match ? match[1] : null;
}

If key is a last parameter in URL and after that there is an anchor - it enter code herewill return value#anchor as a value. # in regexp '[?&]' + key + '=([^&#]+)' will prevent that.

Upvotes: 0

Andrew Mackrodt
Andrew Mackrodt

Reputation: 1826

function extractUrlValue(key, url)
{
    if (typeof(url) === 'undefined')
        url = window.location.href;
    var match = url.match('[?&]' + key + '=([^&]+)');
    return match ? match[1] : null;
}

If you're trying to match 'url' from a page the visitor is currently on you would use the method like this:

var value = extractUrlValue('url');

Otherwise you can pass a custom url, e.g.

var value = extractUrlValue('url', 'http://www.test.info/link/?url=http://www.site2.com

Upvotes: 20

Srdjan Pejic
Srdjan Pejic

Reputation: 8202

Well, firstly, is that the whole query string? If so, all you need to do is split on the =:

url.split('=')[1];

Otherwise, you might want to use Jordan's Regex.

Upvotes: 3

Jordan
Jordan

Reputation: 1238

Check out http://rubular.com to test regex:

url.match(/url=([^&]+)/)[1]

Upvotes: 15

amosrivera
amosrivera

Reputation: 26544

Might want to check this: http://snipplr.com/view/799/get-url-variables/ (works without regEx)

This one does use regEx: http://www.netlobo.com/url_query_string_javascript.html

function gup( name )
{
      name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regexS = "[\\?&]"+name+"=([^&#]*)";
      var regex = new RegExp( regexS );
      var results = regex.exec( window.location.href );
      if( results == null )
        return "";
      else
        return results[1];
}


var param = gup( 'var' );

Upvotes: 3

Related Questions