Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JS正则表达式从google查询链接获取查询值?(镀铬扩展)_Javascript_Regex_String_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 如何使用JS正则表达式从google查询链接获取查询值?(镀铬扩展)

Javascript 如何使用JS正则表达式从google查询链接获取查询值?(镀铬扩展),javascript,regex,string,google-chrome,google-chrome-extension,Javascript,Regex,String,Google Chrome,Google Chrome Extension,我有一些来自浏览器历史记录的链接数据。我想做的是只找出那些属于谷歌查询的链接,更具体地说,只找出那些查询中包含关键字意思 这就是我迄今为止所尝试的。 function extractDataFromHistory(){ //document.getElementById('history').innerHTML = "hi"; chrome.history.search({text: "", maxResults: 1000}, function(historyItems){

我有一些来自浏览器历史记录的链接数据。我想做的是只找出那些属于谷歌查询的链接,更具体地说,只找出那些查询中包含关键字
意思


这就是我迄今为止所尝试的。

function extractDataFromHistory(){
    //document.getElementById('history').innerHTML = "hi";
    chrome.history.search({text: "", maxResults: 1000}, function(historyItems){
        var data = '';
        for(var i=0; i<historyItems.length; i++){
            var url = historyItems[i].url;
            if(url.indexOf('google')>-1 && url.search('q=')){
                //data += historyItems[i].url.indexOf('google');
                data += url;
            }
        }
        document.getElementById('history').innerHTML = data;
    });
}
函数extractDataFromHistory(){
//document.getElementById('history').innerHTML=“hi”;
chrome.history.search({text:,maxResults:1000},函数(historyItems){
var数据=“”;
对于(var i=0;i-1&&url.search('q=')){
//data+=historyItems[i].url.indexOf('google');
数据+=url;
}
}
document.getElementById('history').innerHTML=data;
});
}
我得到的示例数据:

试试正则表达式:

'google.+q=(.+?)&'

括号中的部分是搜索查询。

尝试使用在线正则表达式测试仪(我使用了regex101.com):

正则表达式: google.+q=(.\+-意思是\+?*)

测试:

几乎就是我想要的。但这正是我想要的
google.+q=(.+?)&
感谢Shaversory再次打扰您,但是这里没有介绍另一个测试用例<代码>https://www.google.co.in/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=意思是%20个名字中的%20个
在这种类型的输入中,如果没有
&
afrer
q=
我想这就是你想要的:q=(.\+?意思是。*)&括号内的是匹配的。是的,没错,以上答案说明了什么。但两个答案都不一样,结果还是一样的吗?为什么?两个答案都不一样,注意第二个答案的末尾包含了“&”,括号内的分组是一个组。我强烈建议您在regex101.com上使用正则表达式,这将为您提供表达式的分解。还有其他网站也可以作为参考。