Mr. Luke: Suche in String aus Eingabefeld via Regular Expressions

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

  1. 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

  2. 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