Suche in String aus Eingabefeld via Regular Expressions
Mr. Luke
- javascript
Abend!
Ich habe Schwierigkeiten bei der Verwendung von "Regular Expressions" im Rahmen einer Suche.
Es geht hierbei um ein Eingabefeld (INPUT), welches bei onChange eine Javascriptfunktion ausführt, die dann den Inhalt in DIV Layern anhand der Eingabe aus dem INPUT sucht.
Mein Versuch:
// Eingabefeld zwischenspeichern
var serach_keyws = document.getElementById(search_keyws).value;
// Textfeld/er zwischenspeichern
var search_field_content = document.getElementById(search_field).innerHTML;
// Suchmuster erzeugen
var search_field_regexec = /.+document.getElementById(search_keyws).value
// Suche im Feld zwischenspeichern
result_field = search_field_regexec.exec(search_field_content);
Über ein paar Testversuche via einfacher alert() Ausgaben, kann ich sagen, dass die Eingabezeile und die DIV Layer erfolgreich verarbeitet werden. Die suche anhand meines Suchmusters funktioniert jedoch überhaupt nicht... Scriptfehler bekomme ich nicht!
Es sollten eigentlich alles DIV Layer in denen der Suchbegriff auftaucht ermittelt werden.
Etwas hilfe wäre nett ;)
Gruß,
Mr. Luke
Hi,
// Eingabefeld zwischenspeichern
var serach_keyws = document.getElementById(search_keyws).value;
Ist das ein Tippfehler, oder moechtest du hier zwei mal die Variable search_keyws verwenden? (Wenn ja, koennte sie bei getElementById entweder noch nicht definiert sein, oder aber die Re-Definition mittels var vorne waere fehlerhaft.)
Oder meinst du hinten vielleicht das Textliteral "search_keyws"?
// Suchmuster erzeugen
var search_field_regexec = /.+document.getElementById(search_keyws).value
Habe Zweifel, ob diese Syntax korrekt ist.
Da solltest du wohl eher durchgaengig mit Strings arbeiten, damit erst den Suchausdruck zusammensetzen, und dann ein RegExp-Objekt daraus erstellen.
MfG ChrisB
Hallo,
// Suchmuster erzeugen
var search_field_regexec = /.+document.getElementById(search_keyws).value
Du suchst wahrscheinlich new RegExp(). Mit /.../ kannst du keinen regulären Ausdruck aus Strings zusammensetzen.
Schema:
new RegExp("ausdruck ohne einleitende und schließende /", "flags (optionaler Parameter")
Anwendung (vermutlich):
var regexp = new RegExp(".+" + document.getElementById(search_keyws).value);
var result = regexp.exec(...);
Mathias