Sven Rautenberg: Arithmetische Sytntax prüfen

Beitrag lesen

Moin!

Das ist mein Problem, ich weiß wenn man es vollständig (das mach ich ja am Server) macht ist es ziemlich komplex. Aber es sollte eben auf Clientseite auch passieren, um schnelleres Feedback zu geben. Was kann man da machen?

Ok, es gibt natürlich Möglichkeiten. :)

Zunächst aber:
DISCLAIMER: Die hier vorgestellte Idee eignet sich bestenfalls als Vorauswahl in Javascript, um ganz bös falsche Formeln nicht ins System reinzuslassen. Serverseitige Kontrollen müssen explizit den Parsebaum aufbauen und kontrollieren - bei Javascript schadet sich der User durch falschen oder angreifenden Code allerhöchstens selbst.

So, nachdem die Haftungsfragen geklärt sind, mein Vorschlag:

Logischerweise enthält deine Formel nicht alle 256 verschiedenen Zeichen, sondern nur eine geringe Auswahl davon. Das wäre der erste Ansatz für eine Kontrolle: Sind falsche Zeichen drin. Ein regulärer Ausdruck mit einer Zeichenklasse erledigt das in einem Schritt.

Dann die Klammern: Die kann man ja mal simpel durchzählen. Sind gleichviele öffnende und schließende Klammern enthalten? Es wäre besser, wenn dem so ist.

Und als letzer Schritt würde ich den eingegebenen String mal im Javascript-eval() ausführen lassen. Ich habe keine Ahnung, was eval() so an Rückgabe liefert, aber vielleicht läßt sich damit ja feststellen, ob der übergebene Code korrekt ist oder nicht.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|