检索查询字符串参数的优雅方式

时间:2010-03-08 09:12:55

标签: javascript jquery

我正在检索一个查询字符串参数,为此我的代码是

 <a href="Default2.aspx?Id=1&status=pending&year=2010">Click me</a>

现在我想要检索“status = pending”,我正在做

 var qString = window.location.search.substring(1);
                  var Keys = qString .split('&');
                 alert(Keys[1]);

这很好用,但我在这里硬编码[1]。如果没有硬编码,有没有任何一种方法可以做到这一点?

3 个答案:

答案 0 :(得分:2)

我使用正则表达式,例如:

status=([a-zA-Z])+

这将仅检索状态。如果您已经知道变量总是被称为状态,但不知道该值是什么,那么这是正确的方法。

要使用它,您必须执行以下操作:

var qString = window.location.search.substring(1);
qString.match(/status=([a-zA-Z])+/);

希望有所帮助

答案 1 :(得分:1)

您还可以考虑使用专用的url / querystring解析器,例如this one

答案 2 :(得分:0)

在没有硬编码索引的情况下,以最简单,最好的方式尝试这个

params = location.search;

getParam = function(arg){ if(params.indexOf(arg)&gt; = 0){ var pntr = params.indexOf(arg)+ arg.length + 1; if(params.indexOf(“&amp;”,pntr)&gt; = 0){ return params.substring(pntr,params.indexOf(“&amp;”,pntr)); } else { return params.substring(pntr,params.length); } } else { return null; } }

所以你最终得到的结果是:

?状态= someValue中

var val = getParam(“status”);

val将是“somevalue”