Mr.Luke: Reg. Ausdrück zur Sucher innerhalb eines Strings?!

Abend!

Ich habe ein kleines Problem beim Durchsuchen von Textinhalten bzw. Strings.
Hier meine Funktion mit Kommentaren.

// Text bzw. Inhalt aus einem DIV Layer lesen
var search_field_content = document.getElementById(search_field).innerHTML;
var search_field_regexec = /(search_keyws)/i;
// Suche im Feld zwischenspeichern
var result_field = search_field_regexec.test(search_field_content);
// Suchbegriff vorhanden?
if(result_field == true){
  // Feld mit Suchbegriff gefunden
  alert("Feld: " + search_field + " | " + search_field_content);
}else{
  // Suchbegriff nicht vorhanden!
  alert("nix!");
}

Es funktioniert alles bis auf die Suche anhand der Suchbegriffe in dem INPUT Feld welches mit "/(search_keyws)/i" durchsucht wird. Etwas hilfe würde sehr gut tuen :)

Danke und Gruß,
Lukas H.

  1. Hallo,

    Abend!

    Ich habe ein kleines Problem beim Durchsuchen von Textinhalten bzw. Strings.
    Hier meine Funktion mit Kommentaren.

    // Text bzw. Inhalt aus einem DIV Layer lesen
    var search_field_content = document.getElementById(search_field).innerHTML;
    var search_field_regexec = /(search_keyws)/i;
    // Suche im Feld zwischenspeichern
    var result_field = search_field_regexec.test(search_field_content);
    // Suchbegriff vorhanden?
    if(result_field == true){
      // Feld mit Suchbegriff gefunden
      alert("Feld: " + search_field + " | " + search_field_content);
    }else{
      // Suchbegriff nicht vorhanden!
      alert("nix!");
    }

    Der Name search_field_regexec kommt mir seltsam vor: Die Bezeichnung RegEx kommt nicht von execute (Ausführen), sondern von expression (Ausdruck). "search_field_regex" wäre also schöner, aber das ist nicht das Problem.

    Es funktioniert alles bis auf die Suche anhand der Suchbegriffe in dem INPUT Feld welches mit "/(search_keyws)/i" durchsucht wird. Etwas hilfe würde sehr gut tuen :)

    Mit

    var search_field_content = document.getElementById(search_field).innerHTML;

    bekommst du nicht den eingegebenen Text vom Input-Feld. Die entsprechende Eigenschaft heißt nicht .innerHTML, sondern .value

    Mit

    var search_field_regexec = /(search_keyws)/i;

    suchst du tatsächlich nach den Zeichen "search_keyws" in genau dieser Reiehnfolge, nur Groß-/Kleinschreibung wir ignoriert (wegen /i). Bist du dicher, dass diese Zeichen in deinem search_field_content auch vorhanden sind? Sonst wird natürlich auch nichts gefunden.

    Vielleicht möchtest du lieber nach etwas sinnvollem suchen, was möglicherweise auch wirklich vorkommt.

    Statt

    if(result_field == true){

    schreibt man besser einfach nur
    if(result_field){

    Gruß, Don P

  2. Hallo,

    var search_field_regexec = /(search_keyws)/i;

    Ich nehme mal an, search_keys ist eine Variable und du willst eine RegExp zusammenbauen, die dessen Wert beinhaltet?

    Dann erzeugst du das RegExp-Objekt nicht über den Literal /.../, sondern über den RegExp-Konstruktor. Der nimmt Strings entgegen:

    new RegExp(search_keys, "i");

    Mathias