Как вытащить "кусок" из реферрера

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
Anatoliy_K
Сообщения: 5
Зарегистрирован: 20 дек 2004, 03:29
Откуда: Санкт-Петербург
Контактная информация:

Прошу совета:

есть реферрер. Это страница с поисковой системы (взял несколько: гугл, msn, яху, альтависта).
Пытаюсь выдрать оттуда сам поисковый запрос (они пишутся после &q=, и за запросом следует знак &, или ничего не следует).

Для конструкции вида
http://search.msn.com/results.aspx?FORM ... 0&q=ЗАПРОС решил сделать так:
var anyString=document.referrer;
var x = anyString;
var y = new Array;
var z;
y = x.split("&q=");
z = y[y.length-1];
document.writeln(z);
тут проблем нет, выводится "ЗАПРОС".

Но есть ссылки вида http://search.msn.com/results.aspx?q=ЗАПРОС&FORM=QBRE
то есть после запроса идет знак & и т.п, как я писал выше.
И с такими не знаю что делать.
То есть надо выдрать сам запрос между &q= (или ?q=, или просто q=, а в Яху и после ?p=) и следующим за запросом знаком & (или не следующим, т.е. когда на этом строка закончилась).
Может кто-нибудь хотя бы намекнет где копаться? (JS слабо знаю, но нада :) ) Надо именно JS...
Заранее спасибо!
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Anatoliy_K, разбирают такие строчки по такому алгоритму:
сначала split по знаку вопроса. Тем самым получишь QUERY_STRING.
Потом, split по знаку & - получишь все строки 'параметр=значение'.
И, наконец, split по знаку = - получишь все пары параметр, значение.
Даже самый дурацкий замысел можно воплотить мастерски
Anatoliy_K
Сообщения: 5
Зарегистрирован: 20 дек 2004, 03:29
Откуда: Санкт-Петербург
Контактная информация:

Спасибо, направление ясно :)
Ответить