
Javascript » Tutorials » Lokale Suchmaschine per JavaScript (3/3)
3. Der Algorithmus, für alle, die es genau wissen möchten ;-)
Allerdings nur einige Bereiche exemplarisch herausgezogen...
In dieser Variablen wird der Suchbegriff gespeichert. Dazu wird das Formularfeld
ausgelesen.
var string=document.jump.suche.value;
Nun werden doppelte Leerzeichen im Suchbegriff entfernt
for (var i=0;i<=string.length;i++) {
if (string.substring(i,i+2)==" "){
string=string.substring(0,i)+string.substring(i+1,string.length);
};
};
Dann wird ein führendes Leerzeichen entfernt...
if (string.substring(0,1)==" "){ // dann führende Leerzeichen entfernen
string=string.substring(1,string.length);
};
…und ein Leerzeichen am Ende
if (string.substring(string.length-1,string.length)==" "){ // u. Leerzeichen am Ende
string=string.substring(0,string.length-1);
};
In der Variablen druck wird später die Textausgabe gespeichert, und in treffer werden die Suchtreffer mitgezählt.
var druck="";
var treffer=0;
Wurde kein Suchbegriff angegeben, kommt eine entsprechende Meldung.
if(string==""){
alert("Bitte Suchbegriff eingeben");
}
Nun kann es losgehen:
else{
Der Algorithmus besteht aus drei Bereichen, die sich ausgewählt werde, je nachdem ob der Benutzer als Verknüpfung
"keine" "und" "oder" ausgehält hat.
if(document.jump.vgle[0].checked==1){
Für die Suche wird beispielhaft nur dieser Bereich ("keine Verknüpfung") erläutert
var qq=eval('/'+string+'/i');
In dieser for Schleife wird die gesamte Datenbank durchsucht. In der Variablen
qq wird ein regulärer Ausdruck gespeichert, der in der if Bedingung abgefragt wird.
Zur Erinnerung: in string ist der Suchbegriff gespeichert. Wurde dieser gefunden,
wird die Variable druck für die spätere Ausgabe zusammengebaut, und treffer wird
hochgezählt.
for(i=0;i<daten.length;i++){
if(daten[i].suche.search(qq) != -1){
druck=druck+'<a href="'+daten[i].link+'" '+linkStyle+' =>
target="'+daten[i].target+'">'+daten[i].pfad+'</a><br> =>
<span '+textStyle+'>'+daten[i].beschr+'</span><br><br>\n';
treffer++;
};
};
}
else if(document.jump.vgle[1].checked==1){
}
else if(document.jump.vgle[2].checked==1){
};
Zum Schluß erfolgt noch die Ausgabe. Hierbei wird mit
parent.frames[frameName].document.write
auf das Ausgabe Frame zugegriffen.
};
Autor: Christof Traut, info@traut-design.de
Kommentare
19.03.2004 - 15:55 | Nadine | nadine_senger@web.de
Bin Designerin und soll nun eine Suchmaschine in einer Webseite die ich gestaltet habe ein... 

Kommentar anfügen

|