Регулярка в ф-ии
<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, время: 14:44. |