Захватите параметр URL с помощью jquery и поместите его на вход - PullRequest
0 голосов
/ 01 декабря 2010

Я пытаюсь получить конкретный параметр из URL, например, www.internets.com?param=123456

Я пытаюсь сделать что-то вроде этого ..

$j.extend({
  getUrlVars: function(){
   return window.location.href.slice(window.location.href.indexOf('?')).split(/[&?]{1}[\w\d]+=/);
  }
});
var allVars = $j.getUrlVars('param');

Странно то, что переменная возвращает запятую, поэтому в этом примере она выглядит следующим образом: 123456

Откуда это происходит?!

Ответы [ 3 ]

1 голос
/ 01 декабря 2010

split возвращает массив подстрок, поэтому запятая поступает из сериализации массива.

0 голосов
/ 01 декабря 2010

Посмотрите здесь: http://jquery -howto.blogspot.com / 2009/09 / get-url-parameters-values-with-jquery.html

Кажется, это работает для меня.

0 голосов
/ 01 декабря 2010

Вы просите javascript разбить строку на массив, основываясь на правилах вашего регулярного выражения, поэтому строка «? Param = 123456» превращается в массив, где все, вплоть до =, является просто разделителем, поэтому видит два ключа: пустую строку и 123456.

РЕДАКТИРОВАТЬ - Вы все еще можете использовать разделение, просто используйте другой разделитель. IndexOf говорит, чтобы он смотрел на подстроку после позиции «?», Поэтому, если вы разделите на «=», он предоставит массив, в котором одно значение является именем параметра (возможно, с «?» Или «&» , поэтому просто удалите его), а следующее значение - это значение, отправленное после знака равенства.

Вы также можете получить немного больше глубины с помощью своего регулярного выражения и обработки следующим образом:

var q = window.location.search; // returns everything after '?'
var regEx = /[^?& =]([\w]*)[^!?& =]/g;
var array = q.match(regEx);
var vars = new Array();
for (var i = 0; i < array.length; i++) {
    if ((i % 2) == 0) {
        vars[array[i]] = array[i + 1];
    }
}

Что оставит вас с массивом, где ключи - это имена параметров, а их значения - связанные значения из строки запроса.

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