Hallo,
Mathias
Danke für die Aufklärung, Mathias.
Mit deinem Vorschlag, eine Funktion zu verwenden, funktioniert das ganze wunderbar. Ich stehe aber schon wieder vor einem weiteren Problem ;) (viele sind es nicht mehr), das vermutlich wieder mit dem genauen Vorgehen von Javascript (des Interpreters) zu tun hat. (Leerzeichen nur zur besseren Übersicht)
Teststring: "0 + x^2 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0"
replace(/[+-][0-9]+([+-])/g, "$1");
Ich nahm an, es würde dort nun herauskommen:
"0 + x^2 + 0" aber weit gefehlt, es kommt heraus: "0 + 2*x^1 + 2 + 4 + 6 + 8 + 0"
Ich hatte mir gedacht, dass der Parser(richtig?) den String durchgeht und nach Zahlen sucht, vor denen und nach denen ein Plus oder Minus steht. Findet er eine solche, ersetzt er die Zahl und das Plus/Minus vor der Zahl durch nix (löscht sie also).
Zuerst findet er die 1 und löscht sie mitsamt des Plus' vor der Zahl. Nun steht da "0 + x^2 +v 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0", aber anscheinend geht er jetzt hinter das Plus, was hinter der 1 stand (bei v) und dann steht natürlich kein Plus mehr vor der 2. Somit überspringt er jede zweite Zahl. Ist meine Vermutung richtig? Und viel wichtiger: was soll ich jetzt tun, damit er das nicht tut?