molily: Usereingabe auswerten

Beitrag lesen

Hallo,

Regex: replace(/ ([0-9]) x ([0-9])  /g, "" + ($1 * $2) + "x $2") <- funktioniert nicht, $1 ist natürlich keine Variable.

Das geht so nicht.
Da musst du mit einer Ersetzungsfunktion arbeiten, die die gefundenen Subpattern als Parameter übergeben bekommt:

  
function ersetzungsfunktion (str, a, b) {  
 return (b * a) + " * x ^ " + (b - 1);  
}  
var teststring = "15*x^4";  
var newstring = teststring.replace(/(-?\d+)*\s*\*\s*x\s*\^\s*(\d+)/ig, ersetzungsfunktion);  
document.write("<p>" + newstring + "</p>");  

Diese Vorgehensweise ist ein bisschen unüblich und wenig bekannt, aber für solche Fälle ideal.
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:String:replace#Specifying_a_function_as_a_parameter

Mathias