Элегантный способ получения параметра строки запроса - PullRequest
0 голосов
/ 08 марта 2010

Я получаю один параметр строки запроса, и для этого мой код

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

2 голосов
/ 08 марта 2010

Я бы использовал регулярное выражение , например:

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

Это будет получать только то, что статус. Если вы уже знаете, что переменная всегда называется status, но не знаете, каково значение, это правильный путь.

Чтобы использовать его, вам нужно сделать что-то вроде этого:

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

Надеюсь, это поможет

1 голос
/ 08 марта 2010

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

0 голосов
/ 08 марта 2010

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

params = location.search;

getParam = function (arg) { if (params.indexOf (arg)> = 0) { var pntr = params.indexOf (arg) + arg.length + 1; if (params.indexOf ("&", pntr)> = 0) { вернуть params.substring (pntr, params.indexOf ("&", pntr)); } еще { возврат params.substring (pntr, params.length); } } еще { вернуть ноль; } }

Таким образом, вы получите что-то вроде:

? Состояние = SomeValue

var val = getParam ("status");

val будет "somevalue"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...