我有以下的URL
http://www.test.info/link/?url=http://www.site2.com
如何使用正则表达式在javascript中获取url参数的值?
谢谢
我有以下的URL
http://www.test.info/link/?url=http://www.site2.com
如何使用正则表达式在javascript中获取url参数的值?
谢谢
function extractUrlValue(key, url)
{
if (typeof(url) === 'undefined')
url = window.location.href;
var match = url.match('[?&]' + key + '=([^&]+)');
return match ? match[1] : null;
}
如果您想匹配来自当前访问页面的 'url',则应该按以下方法使用该方法:var value = extractUrlValue('url');
否则您可以传递自定义的URL,例如:var value = extractUrlValue('url', 'http://www.test.info/link/?url=http://www.site2.com
建议查看此链接:http://snipplr.com/view/799/get-url-variables/(不需要使用正则表达式)
这个链接需要使用正则表达式: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' );
首先,这是整个查询字符串吗?如果是的话,你只需要按“=”分割即可:
url.split('=')[1];
关于答案代码:
function extractUrlValue(key, url)
{
if (typeof(url) === 'undefined')
url = window.location.href;
var match = url.match('[?&]' + key + '=([^&#]+)');
return match ? match[1] : null;
}
key
是URL中的最后一个参数,并且此后有一个锚点 - 它会返回value#anchor
作为值。正则表达式'[?&]' + key + '=([^&#]+)'
中的#
将防止这种情况。
url.match(/url=([^&;]+)/)[1]
。 - TMKasunurl.match(/(\?|&)url=([^&]+)/)[2]
。 - Alejo Anibal