2010-03-08 5 views
0

Я извлечение один параметр строки запроса, и что мой кодЭлегантный способ извлечения строки запроса параметр

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

Теперь я хочу, чтобы получить «статус = ожидание» и что я делаю

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

1

вы можете также рассмотреть специальный URL/парсер строку запроса, как this one

+0

Или попробуйте реализацию Адама Ванденберга (http://adamv.com/dev/javascript/querystring), которая не зависит от jQuery. – jou

0

Try это самый простой и лучший способ без жесткого кодирования индекс

params = location.search;

GetParam = функция (Arg) { , если (params.indexOf (Arg)> = 0) { вар PNTR = params.indexOf (Arg) + arg.length + 1; if (params.indexOf ("&", pntr)> = 0) { return params.substring (pntr, params.indexOf ("&", pntr)); } else { return params.substring (pntr, params.length); } } else { null null; }}

Таким образом, вы бы в конечном итоге с чем-то вроде:

статус = SomeValue

вар вал = GetParam ("статус");

val будет "somevalue"

+0

thnx для d sln.will взгляните на этот подход – Wondering

Смежные вопросы