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

时间:2009-09-13 04:50:36

标签: javascript jquery

假设您有一个网址:

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];
}

3 个答案:

答案 0 :(得分:5)

使用 jquery.query 并享受乐趣:)

你可以简单地使用:

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

答案 1 :(得分:1)

如果你没有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是一个可选参数(默认为窗口)。

答案 2 :(得分:0)

我使用Netlobo.com

中的这段javascript
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];
}

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

*编辑:嗯,nm我猜TheVillageIdiot的建议是最好的&最简单的jQuery:P ... YAY,我今天学到了一些东西:)但是你仍然应该检查一下插件,这很好,因为它将返回URL的any part,包括来自字符串的数据。