我想从Google搜索的网址中提取搜索的关键字(例如关键字“car”:http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&source=hp&q=car&aq ...(这里的车位于“q =”和“&”之间3水溶液” 但是我注意到令牌可能会改变[“& ie”而不是“& aq”])。
在正则表达式和谷歌搜索方面的新手我到目前为止还没有找到解决方案,有人知道怎么做吗?
布鲁诺
答案 0 :(得分:18)
您不需要正则表达式。修改自http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html:
function getUrlVars(href)
{
var vars = [], hash;
var hashes = href.slice(href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
然后你可以这样做:
var v = getUrlVars("http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&source=hp&q=car&aq");
var q = v.q;
答案 1 :(得分:0)
下面的示例代码适用于单个参数和当前URL,但可以根据需要进行修改。
function extract( name )
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
只需使用它,如下所示,
var result= extract("your parameter name");
答案 2 :(得分:0)
function getParameterByName(name,url) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(url);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
alert(getParameterByName('q','https://www.google.com/search?q=buy+a+pc&oq=buy+a+pc&aqs=chrome..69i57j5j0l2j69i61.1674j0&sourceid=chrome&ie=UTF-8#psj=1&q=buy+a+pc'));