как мне захватить что-то после чего-то еще?как реферер = someString - PullRequest
0 голосов
/ 30 августа 2010

У меня есть ссылка = Apple и мое текущее регулярное выражение

    var regex = /ref=(.+)/;
    var ref = regex.exec(window.location.href);
    alert(ref[0]);

но это включает в себя ref =

Теперь я также хочу прекратить захват символов, если & находится в конце параметра ref. причина ref может не всегда быть последним параметром в URL.

Ответы [ 5 ]

3 голосов
/ 30 августа 2010

Вы хотите разделить параметры URL, а не использовать регулярное выражение.

Что-то вроде:

var get = window.location.href.split('?')[1];
var params = get.split('&');
for (p in params) {
    var key = params[p].split('=')[0];
    var value = params[p].split('=')[1];

    if (key == 'ref') {
        alert('ref is ' + value);
    }
}
2 голосов
/ 30 августа 2010

Используйте ref[1] вместо.

Доступ к тому, что записано группой 1 в вашем шаблоне.

Обратите внимание, что почти наверняка есть лучший способ анализа ключа / значения в Javascript, чем в regex.

Ссылки

1 голос
/ 30 августа 2010

Вы неправильно используете ref, используйте ref [1] для (.+), ref[0] - полное совпадение.Если & находится в конце, измените регулярное выражение на /ref=([^&]+)/, чтобы исключить & s.Кроме того, убедитесь, что ваш urldecode (unescape в JavaScript) соответствует.

1 голос
/ 30 августа 2010

Захватывать только слова и цифры:

var regex = /ref=(\w+)/;
var ref = regex.exec(window.location.href);
alert(ref[1]);

Захватить слова, цифры, символы - и _:

var regex = /ref=([\w_\-]+)/;
var ref = regex.exec(window.location.href);
alert(ref[1]);

Подробнее о регулярных выражениях (основы)

0 голосов
/ 30 августа 2010

попробуйте этот шаблон регулярного выражения ref = (. *?) &

Этот шаблон будет соответствовать чему-либо после ref = и останавливаться перед '&'

Чтобы получить значение m, используйте следующий код:

var regex = /ref=(.*?)&/;

var ref = regex.exec (window.location.href);

предупреждение (см [1]);

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