Регулярка в ф-ии
<script type='text/javascript'>
function qwerty(A,B) {
var reg=A;
if (reg.exec(document.referrer)) {
var reg=B;
var arr=reg.exec(document.referrer);
var str=arr[1];
str=decodeURIComponent(str);
var str=str.replace(reg=/\+/g, " ") ;
}
return str;
}
document.write(qwerty(/search\.qip\.ru/,/search\?query=(.+?)$/));
</script>
Почему не работает подскажите плиз. Возможно с синтаксисом что-то намутил. Без использования ф-ии все пахало |
Какой результат вы пытаетесь получить?
|
Пользователь заходит на страничку с поисковика.
Скрипт смотрит реферрер и вырезает все что после query= И выводит результат на экран. кароче говорю, скрипт смотрит по какому запросу перешли на мой сайт. Когда делал без функции - все работает. Обернул код в функцию - перестало работать, вот думаю что проблемма в синтаксисе Вот так работает:
<script type='text/javascript'>
var reg=/search\.qip\.ru/;
if (reg.exec(document.referrer)) {
var reg=/search\?query=(.+?)$/;
var arr=reg.exec(document.referrer);
var str=arr[1];
str=decodeURIComponent(str);
var str=str.replace(reg=/\+/g, " ") ;
document.write(str);
}
</script>
|
Зачем все так усложнят-то?
alert(document.referrer.replace(/.*query=(.*)/g, "$1")); |
Цитата:
Ну для проффи так легче а новичкам по строкам удобней как я :) Если добавлю все что мне необходимо : 1)Нужно заменить плюсы на пробелы. 2)отобразить с какого поисковика перешли (var reg=/search\.qip\.ru/; ...так же будет с яндексом апортом гуглом майлом гуглом итд) 3)Привести текст в читаемый вид (decodeURIComponent) то код опять получится из 5+ строк как в первом посте Этот код нужно написать для 10 поисковиков. получается 50 строк,вот я и хотел испоьзовать функцию. Хотел узнать что не правильно в той функции написано,в плане синтаксиса. |
Броузер вот такое возвращает при отладке:
Цитата:
|
Еще раз повторюсь, что нет необходимости в многострочном коде:
var str = decodeURIComponent("http://javascript.ru/php?query=http://ya.ru%2F%D0%BA%D0%B0%D0%BA-%D1%82%D0%BE%20%D1%82%D0%B0%D0%BA");
alert(str.replace(/.*query=(.*)/i, "$1").match(/http\:\/\/\w+\.\w+/i));
в итоге вам нужно: document.referrer.replace(/.*query=(.*)/i, "$1").match(/http\:\/\/\w+\.\w+/i); |
| Часовой пояс GMT +3, время: 23:52. |