Reg. Ausdrück zur Sucher innerhalb eines Strings?!
Mr.Luke
- javascript
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.
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
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