Felix Riesterer: match(/var/);

Beitrag lesen

Lieber jonny_w,

text.match(/str[3][8]\n/);
das funktioniert nicht, ich auch klar das es nicht geht, die frage ist aber wie kann ich es hinbekommen das es geht?

was Du brauchst ist ein neues RegExp-Objekt. Alles was Du ohne Anführungszeichen als /irgendwas/ notierst, wird als ein solches Objekt verstanden. Wenn Du nun dynamisch Variableninhalte zu regulären Ausdrücken "umformen" möchtest, dann benötigst Du neue solche Objekte.

Beispiel:

myArray = ["eins", "zwei", "drei"];  
  
for (var i = 0; i < myArray.length; i++) {  
   myRegExp = new RegExp(myArray[i], "gi");  
   alert("Teste " + myArray[i] + " mit diesem Ausdruck: " + myRegExp);  
   // dieser Test matched natürlich immer...  
   if (myArray[i].match(myRegExp) alert ("Es matched!");  
   // ... aber zum Verdeutlichen sollte es reichen.  
}

Nocheinmal abstrakter:
Mit "new RegExp(string-Muster, string-Modifier)" erzeugst Du ein neues RegExp-Objekt. In "string-Muster" steht Dein Suchausdruck _ohne_ umschließende Slashes! In "string-Modifier" stehen so Sachen wie "i" für CaseInsensitive, "g" für Greedy oder "m" für MultiLineMode.

Liebe Grüße aus Ellwangen,

Felix Riesterer.