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