[JS] Zoekmachine en zoektermen matchen in document.referer

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Voor een statistiekentooltje probeer ik een stukje javascript te schrijven dat een URI (van document.referer afkomstig) matcht met een aantal zoekmachines en de gebruikte zoektermen in een array opslaat. Ik heb nu het volgende:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var uri = "http://www.google.nl/search?q=extract+search&hl=nl&start=10&sa=N";
var searchterms = [];

var sniffs = [
  ["/google\./i", "q"],
  ["/yahoo\./i", "p"],
  ["/search\.msn\./i", "q"],
  ["/alltheweb\./i", "q"],
  ["/web\.ask\./i", "q"],
  ["/altavista\./i", "q"]
]

for (var i = 0; i < sniffs.length; i++) {
  if (uri.match(sniffs[i][0])) {
    // match with searchengine found
    // extract searchterms and add to array
  }
}

Deze code geeft geen match terug, hoewel ik dat wel verwachtte (zie sniffs array). Ik heb 2 vragen:
  • waarom matcht de URI hier niet met de google-regex uit sniffs?
  • hoe kan ik, als er een match is, de zoektermen opslaan in een array?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Omdat sniffs[i][0] geen reguliere expressie is maar een String literal, die dus door de RegExp constructor zal worden gehaald - en daar komt niet uit wat jij verwacht ;)

Intentionally left blank


Verwijderd

crisp schreef op woensdag 18 april 2007 @ 02:31:
Omdat sniffs[i][0] geen reguliere expressie is maar een String literal, die dus door de RegExp constructor zal worden gehaald - en daar komt niet uit wat jij verwacht ;)
Hoe kan ik er dan voor zorgen dat de string als een regex gezien wordt? Ik PHP werkt een soortgelijke constuctie nl. wel... :?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op woensdag 18 april 2007 @ 09:50:
[...]

Hoe kan ik er dan voor zorgen dat de string als een regex gezien wordt? Ik PHP werkt een soortgelijke constuctie nl. wel... :?
PHP kent geen regexp literals, javascript wel - een kwestie van de quotes weghalen ;)

Intentionally left blank