Ralf: String mit Funktionsaufruf interpretieren (2)

Beitrag lesen

Hallo!

Ich hoffe mal, dass ich mit einem neuen Thread trotz des gleichen Subjects wie gestern richtig liege, weil es um ein spezielles Problem geht, welches die von Struppi angebotene Lösung in folgendem Beitrag nun "verursacht hat:
https://forum.selfhtml.org/?t=143574&m=932230

Hier zunächst der Code (welcher auch funktioniert):

String.prototype.resolve= function()  
{  
    var new_string = this.replace( /\[\[\[([^\]]*)\]\]\]/g, get_attr ("$1") );  
    return new_string;  
}  
function get_attr(s)  
{  
    return "*" + s + "*";  
}  
  
var string = "abc [[[var1]]] def [[[var2]]] xyz";  
alert( string.resolve( ) );

Es soll erreicht werden, dass für Strings, die mit 3-fachen eckigen Klammern umgeben sind, ein Wert ermittelt wird, der vom jeweiligen String abhängt.

Mein Problem ist nun, dass innerhalb der Funktion get_attr() kein Zugriff auf den "wahren" Wert von "s" möglich ist. Wenn ich alert(s) einsetze, wird "$1" angezeigt. Die Funktion soll aber einen Wert abhängig von "s" zurückgeben ...

Mache ich einen Denkfehler?

Ralf