2016-07-29 11 views
0

Ich habe die folgende Funktion, die den Browserverlauf (mithilfe der Chrome-API) durchläuft und alle Google-Suchanfragen extrahiert. Getestet habe ich die Regex auf verschiedenen Websites und es funktioniert, aber das scheint nicht in der JS-Funktion zu arbeiten, ich erstellt (nicht jede URL log):Regex zum Anpassen der URL funktioniert nicht

function getHistory(){ 
      var regex = '^https?:\/\/[^/]+\.google\.[a-z.]+\/((search[?#])|(webhp[?#])|([?#])).*q='; 
      chrome.history.search({text:regex, maxResults:11}, function(data) { 
       data.forEach(function(page) { 
        var url = page.url; 
        console.log(url); 
      }); 
     }); 
    } 
+0

Doppelte Backslashes. 'var regex = '^ https?: // [^ /] + \\. google \\. [az.] +/(suche [? #] | webhp [? #] | [? #]). * q = '; ' –

+0

Dieser Regex wird irgendwo Domains mit google irgendwo finden, aka' http: //abgoogle.spamware.biz/search ??????? q = ' –

Antwort

0

Nach dem Docs es nicht sehen aus, als ob chrome.history.search() eine Regex nimmt, stattdessen braucht es eine Textsuchabfrage, also ist es nicht überraschend, dass es keine URLs findet, die wie die literale Regex aussehen.

Während vielleicht nicht so effizient, könnten Sie den Text leer lassen oder "google.com" verwenden, dann führen Sie die Regex-Filterung auf die Ergebnisse.

+0

Ich habe andere Regex getestet und sie funktionieren nur fein. – AGanz

+0

genau so, wie Sie es hier verwenden, könnten Sie ein funktionierendes Beispiel geben? –