我想获取当前页面的 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=", "");
但它只是将整个 page:env("caller") 分配给变量查询(例如http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=cats)。
编辑:jQuery 解决方案很可能也可以工作。
编辑2:@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;
}
}
此外,我正在寻找一种更强大的方式来获取查询,因为谷歌有很多方法可以登陆搜索结果页面,其 URL 看起来不像http://www.google.com/search?q =猫。例如,去谷歌搜索猫只是给了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=结果的 URL 为1&fp=8ac6b4cea9b27ecb。我想我可以用正则表达式解析任何东西,虽然......