Reputation: 253
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
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
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
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
Reputation: 1238
Check out http://rubular.com to test regex:
url.match(/url=([^&]+)/)[1]
Upvotes: 15
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