Moin Moin !
Hmm, so einfach würde es mir an deiner Stelle nicht machen. Wenn Du z.B. einen solchen Ausdruck hast, ist der für a = 1 und b != 1 sehr wohl definiert, nach deiner "Prüfung" allerdings nicht: a/(1-b)
Ich weiss ja nicht, welche Randbedinungen du für die Varaiblen vorgibst, aber einfach alle Varaiblen durch den selben Wert zu ersetzen, ist eine fragwürdige Methode. Ich würde das nicht so machen, sondern jeder Variablen einen anderen Wert zuweisen.
Das ist leider kein Stückchen besser.
Nimm a=12345, b=67890 und als Formel "a/(67890-b)": Kabooom!
Nimm a=2.76, b=3.1415 und als Formel "a/(3.1415-b)": Kabooom!
...
Nimm a=10, b=5 und als Formel "a*2*b/(a-2*b)": Kaboom!
Ohne einen vernünftigen Parser ist eval nur bedingt geeignet, die Formeln zu prüfen, egal welche Werte Du für Variable einsetzt.
Was ist mit Ausdrücken, die zwar in JS, aber nicht im Backend gültig sind?
Die "Formel" "window.name.length" ist durchaus in JS gültig.
Was ist, wenn das Backend die Formeln in mathematisch-fauler Notation ohne explizite Multiplikationsoperatoren akzeptiert? "2ab-4cd+8ef" mag das Backend mögen, JS nicht.
Alexander
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"