dedlfix: Input type="text"-Feld mit mathematischen Operatoren

Beitrag lesen

Tach!

meine Frage betrifft, wie der Titel schon sagt, ein Input type="text"-Feld mit mathematischen Operatoren. Wie kann ich das Input-Feld so gestalten, dass er mehrere Zahlen-Werte, getrennt durch "+", "-", ... zusammen addiert, subtrahiert, etc.?

Wer ist "er"?

Es ist ein Input-Feld vom Typ text und nicht formel-die-ich-dir-gleich-ausrechne. Da gibt es nichts weiter für deinen Anwendungsfall zu gestalten.

Der Hintergrund ist der, dass ich generell erst einmal prüfe, ob der Wert eine Zahl ist (isNaN(Wert)). Soweit so gut. Dennoch möcht ich dem Nutzer die Möglichkeit geben, Zahlen addieren, etc. zu lassen.

Solange es gültige Javascript-Syntax ist, kannst du eval() verwenden. WAS? eval()? eval() ist doch des Teufels!!1elf! - Wenn der Anwender sich selbst ins Knie schießen möchte, braucht er das eval() nicht. Das kann er auch an der Browserkonsole tun. eval() öffnet hier keine Missbrauchsmöglichkeit, die nicht schon im Browser eingebaut wäre. Es sei denn, die Anwendung soll im Kiosk-Modus laufen.

try-catch drumherum fängt Eingabefehler ab.

Muss ich da z.B. dem Nutzer "befehligen", ein "=" voransetzen zu lassen und dann den Value-String nach den mathematischen Operatoren aufzusplitten und dann, anhand der Operatoren, wieder zusammen zu setzen oder gibt es da eine "einfacherer" Lösung für das Rechnen generell?

Wenn du unbedingt einen Formelparser schreiben möchtest, dann tu das. Das ist aber aufwendiger als ein lediglich paar Splits auszuführen. Einfacher ist es, den eingebauten Parser von Javascript zu benutzen.

dedlfix.