使用Javascript/jQuery获取给定URL参数值的最佳方法?

使用Javascript/jQuery获取给定URL参数值的最佳方法?,javascript,jquery,Javascript,Jquery,假设您有一个URL: http://www.example.com/whatever?this=that&where=when 如何提取where参数的值(在本例中为when) 这就是我想到的--我想知道是否有更好的解决方案: $.fn.url_param_value = function(param) { var url = $(this).attr('href'); var regex = new RegExp(param + "="); return $.grep(

假设您有一个URL:

http://www.example.com/whatever?this=that&where=when
如何提取
where
参数的值(在本例中为
when

这就是我想到的--我想知道是否有更好的解决方案:

$.fn.url_param_value = function(param) {
  var url = $(this).attr('href');
  var regex = new RegExp(param + "=");

  return $.grep(url.split("?")[1].split("&"), function(a) {
    return a.match(regex);
    })[0].split("=")[1];
}
使用并享受乐趣:)

您可以简单地使用:

var w = $.query.get("where");

如果没有jQuery,我将使用以下函数:

function urlParam(name, w){
    w = w || window;
    var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)');
    var val = w.location.href.match(rx);
    return !val ? '':val[1];
}

如果您需要读取iframe参数,w是一个可选参数(默认为window)。

我从

或者,如果您正在寻找插件,请尝试


*编辑:嗯,我想Villageidiot的建议对jQuery来说是最好和最简单的:p。。。是的,我今天学到了一些新东西:)但是你还是应该看看这个插件,它很好,因为它会返回URL,包括字符串中的数据。

Query string object是一个扩展,它创建了一个singleton Query string对象,用于快速可读的查询字符串修改和创建。这个插件提供了一种简单的方法,可以获取页面的查询字符串并创建一个修改版本,只需很少的代码。
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];
}