Я хочу взять URL текущей страницы (используя page: env ("caller")) и извлечь его часть.
Например, я хочу взять
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=cats
и присвоить
cats
к переменной.
Как бы я это сделал с KRL?
Я пытался
url = page:env("caller");
query = url.replace("http://www\.google\.com/search\?sourceid=chrome&ie=UTF-8&q=", "");
но он просто назначает всю страницу: env ("вызывающий") для запроса переменной (например, http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=cats).
Редактировать: решение jQuery, скорее всего, также будет работать.
Edit2: @JAM -
Выделенное утверждение, которое вы разместили, похоже, не работает. Я проверил это на http://www.google.com/search?q=cats, и оно не сработало. Не уверен, что URL не соответствует просмотру страницы или какому (похоже, он должен соответствовать мне).
Приложение, в которое я поместил его:
ruleset a835x36 {
meta {
name "regex testing2"
description <<
>>
author ""
logging on
}
rule get_query {
select when pageview "http://www.google.com/search.*(?:&|?)q=(\w+)(?:&|$)" setting(query)
notify("Query",query) with sticky = true;
}
}
Кроме того, я ищу более надежный способ получить запрос, поскольку у Google есть много способов попасть на страницу результатов поиска с URL-адресами, которые не будут выглядеть как http://www.google.com/search?q=cats. Например, собирается Google и поиск кошек просто дал http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&source=hp&q=cats&aq=f&aqi=&aql=&oq=&gs_rfai=&pbx=1&fp=8ac6b4cea9b27ecb для URL результатов. Я думаю, я мог бы разобрать все с помощью регулярного выражения, хотя ...