我有以下网址
http://www.test.info/link/?url=http://www.site2.com
如何在javascript中使用正则表达式获取url参数的值?
由于
答案 0 :(得分:11)
function extractUrlValue(key, url)
{
if (typeof(url) === 'undefined')
url = window.location.href;
var match = url.match('[?&]' + key + '=([^&]+)');
return match ? match[1] : null;
}
如果您尝试匹配访问者当前所在网页的“网址”,则可以使用以下方法:
var value = extractUrlValue('url');
否则您可以传递自定义网址,例如
var value = extractUrlValue('url', 'http://www.test.info/link/?url=http://www.site2.com
答案 1 :(得分:10)
查看http://rubular.com以测试正则表达式:
url.match(/url=([^&]+)/)[1]
答案 2 :(得分:3)
可能要检查一下:http://snipplr.com/view/799/get-url-variables/(无法使用regEx)
这个确实使用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' );
答案 3 :(得分:2)
嗯,首先,是整个查询字符串?如果是这样,你需要做的就是分开=:
url.split('=')[1];
否则,您可能想要使用Jordan的Regex。
答案 4 :(得分:0)
答案代码:
function extractUrlValue(key, url)
{
if (typeof(url) === 'undefined')
url = window.location.href;
var match = url.match('[?&]' + key + '=([^&#]+)');
return match ? match[1] : null;
}
如果key
是网址中的最后一个参数,之后有一个锚点 - 它在此处输入代码将返回value#anchor
作为值。正则表达式#
中的'[?&]' + key + '=([^&#]+)'
会阻止这种情况发生。