我正在检索一个查询字符串参数,为此我的代码是
<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]。如果没有硬编码,有没有任何一种方法可以做到这一点?
答案 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”