Romero: search() mit mehreren Bedingungen

Beitrag lesen

Hy Felix,

also ich muss sagen, diese Idee ist wirklich besser. Dennoch trifft diese Anfrage nur bedingt zu.

Ich geb dir mal paar Beispiele. Kannst du mir da sagen, wo eventuell der Fehler liegen könnte, warum die Abfrage nicht funktioniert?

Das Ziel ist es, aus einem Tabellenplatt in Spalte X die Zeilen nach und nach auszulesen, und wenn die Suchabfrage und der Zelleninhalt passen, so soll dann weitere Schritte erfolgen:

for( var i = 0; i < Startzeile.length; i++ )  
{  
   //-> alle ".", "-" & Leerzeichen werden entfernt  
   Bsp. 1: var Auslese_Bereich = "M25891010012 - S.13 A" //Blattname = S13  
   Bsp. 2: var Auslese_Bereich = "M25891015012 - S.13 D" //Blattname = S13  
   Bsp. 3: var Auslese_Bereich = "M25891095006 - INSUL. AREA IF S.13  " //Blattname = IF  
   Bsp. 4: var Auslese_Bereich = "M25891095006 - INSUL. AREA IF S.15  " //Blattname = IF  
   Bsp. 5: var Auslese_Bereich = "M25891020004 - INSUL. AREA FG  " //Blattname = FG  
  
   //hier die Suchabfrage, welche bei mir durch Variablen ersetzt sind  
   var Suchabfrage = new RegExp( "M25891010012 (oder eine andere der oberen Nummern)" + "(" + "INSULAREA" + "|" + "S13 (oder S15 / IF / FG)" + "(" + "A (oder D / IF / FG)" + "|" + "S13 (oder S15 / IF / FG)" + "(" + "AREA" + "|" + "S1315" + "|" + "S13 (oder S15 / IF / FG)" + "(" + "weitere Benennung" + ")?" + ")?" + ")?" + ")$" );  
  
   // die Wiederholungen einiger Werte kommen daher, da in dem Auslese_Bereich die S13 / S15 / IF / FG mittendrin oder am Ende stehen könnten  
  
   if( Auslese_Bereich.match(Suchabfrage) )  
   {  
      alert("gefunden");  
   };  
};

Soweit die Theorie. Bei den Beispielen 1 und 2 klappt die Abfrage hervorragend
Aber bei den Beispielen 3 bis 5 greift er gar nicht, sprich, die Ausgabe alert("gefunden") wird mir nicht angezeigt. Erkennst du da grad den Fehler? Liegt es an den vielen doppelten Werten oder an der Länge des RegExp()'s?

Hoffe kannst mir folgen :)

LG Romero