Olaf: Problem mit Funktion innerhalb Replace Funktion?

Beitrag lesen

Hallo zusammen,

ich brüte seit geraumer Zeit über dem Rexexp Objekt und der Repalce Funktion

Konkret bekomme ich einen String mstr über den Zaun gekippt, der den HTML Code eines Input Feldes samt Inhalt enthält.

Jetzt suche ich mit regulären Ausdrücken nach unerwünschten Mustern, in dem Beispiel hier nach "<?..?>", was als Unterausdruck geklammert ist und sich mit $2 ansprechen lässt.

So weit, so gut. Jetzt wollte ich aber dieses $2 an eine andere Funktion übergeben, weiterverarbeiten und erst den Rückgabewert im Replace verwenden.

  
mstr = mstr.replace(/(\<input.*?)(\<\?.*?\?\>)(.*?\>)/ig,"$1" + dummyret($2) + "$3");  
  
function dummyret(str) {  
	//...verarbeitung  
	alert(str);  
	return str;  
}  

Schreibe ich dummyret($2), dann bekomme ich eine Meldung $2 ist undefiniert,
Schreibe ich dummyret("$2"), dann gibt alert(str) in der Funktion dummyret "$2" aus.

Wie komme ich denn in dumyret(str) an den Inhalt von $2? Geht das überhaupt?

Vielen Dank & Grüsse

Olaf