2010-03-08 38 views
0

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

 <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]。没有硬编码,有没有任何一种方法可以做到这一点?

回答

2

我会使用一个正则表达式如:

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

这将检索状态只是什么。如果你已经知道变量总是被称为状态,但不知道该值是什么,这是正确的路要走。

要使用它,你必须做这样的事情:

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

希望它可以帮助

+0

会尝试正则表达式。 – Wondering 2010-03-08 12:02:50

1

你也可以考虑专门的URL /查询字符串解析器,像this one

+0

或者试试Adam Vandenberg的实现(http://adamv.com/dev/javascript/querystring),它不依赖于jQuery。 – jou 2010-03-08 09:50:13

0

尝试这是没有硬编码索引的最简单和最好的方法

params = location.search;

getParam =函数(ARG){ 如果(params.indexOf(ARG)> = 0){ VAR PNTR = params.indexOf(ARG)+ arg.length + 1; 如果(params.indexOf( “&”,PNTR)> = 0){ 返回params.substring(PNTR,params.indexOf( “&”,PNTR)); } else { return params.substring(pntr,params.length); } } else { return null; }}

所以你最终的东西,如:

状态= someValue中

VAR VAL = getParam( “状态”);

val会“somevalue”

+0

thnx为d sln.will看看这种方法 – Wondering 2010-03-08 12:03:19

相关问题