ChrisB: Wie kann ich einen Wert in euro anzeigen lassen also 1,00 €

Beitrag lesen

Hi,

if (!a.match(/^\d+([,.]\d+)?$/)) {error++;}

Möglich, aber nicht elegant.

Möglicherweise nicht elegant, aber trotzdem angebracht.

An alle, die sich mit Javascript etwas besser auskennen: gibt es ne Möglichkeit, einen String in eine Zahl umwandeln zu lassen, wobei die umwandelnde Funktion eine Exception rauswirft, die man abfangen kann?

Das weiter untem im Script angewendete parseFloat liefert den Rückgabewert NaN, den man abfragen kann.
Es wirft aber keine „Exception“, und es liefert auch nur NaN, wenn sich das übergebene „gar nicht“ als Zahl interpretieren lässt. Beginnt es bspw. mit einer gültigen Zahl, gefolgt von Buchstaben o.ä. - dann liefert es immer noch die entsprechende Zahl.
"123,456.789", wie es vielleicht ein amerikanischer Nutzer in einem Textfeld eingeben würde, wird von parseFloat kommentarlos zu einer 123 gemacht - das dürfte idR. nicht das Verhalten sein, was man von einem robusten Script möchte.
Die vorherige Prüfung per regulärem Ausdruck erscheint mir also alles andere als verkehrt, egal ob „elegant“ oder nicht.

Wer die entsprechenden Zeilen nicht zig-mal im Script stehen haben möchte, der kann sich ja eine eigene Methode dafür basteln - bspw. prototypisch an String angehängt.
Wenn die Format-Prüfung dann negativ ausfällt, kann diese Methode dann auch gerne einen Fehler erzeugen, mittels throw new Error(...)

MfG ChrisB

--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?