molily: isNaN zum Prüfen auf Zahlen

Beitrag lesen

if (isNaN(Wert)) {
    alert(Wert + " ist keine Zahl!");
  }

isNaN = is Not a Number
diese funktion schlägt an, wenn der eingegebene wert keine zahl ist.

Das prüft, ob der Wert als JavaScript-Zahl interpretiert werden kann. Es prüft nicht, ob der Wert das ist, was man für gewöhnlich unter Zahl versteht (die nicht negativen ganzen Zahlen oder reelle Zahlen mit einem Komma als Dezimaltrennzeichen).

Gültige JS-Zahlen sind z.B.:

0 sowie -0
123 sowie -123
156.21 sowie -156.21
Infinity sowie -Infinity
0XABC sowie -0XABC (Hexadezimalschreibweise, dezimal (-)2748)
0123 sowie -0123 (Oktalschreibweise, dezimal (-)83)
-.01E-12 (Exponentialschreibweise, gleich -1 mal 10 hoch -14)

Die will man aber allesamt üblicherweise nicht in einem Feld stehen haben, wenn eine »Zahl« erwartet.

Ungültig hingegen ist z.B.:

15,2

Insofern sollte man hier von isNaN, Number() und dergleichen die Finger lassen, wenn das Formularfeld nicht den Zweck hat, dass man eine Zahl eingibt, die dann ausschließlich von JavaScript verstanden und verarbeitet werden muss.

Zahlen überprüft man besser auch als Strings mit Regulären Ausdrücken. Anschließend könnte man sie in Zahlen umwandeln, um bspw. zu prüfen, ob die Zahl zwischen 5 und 10 liegt.

Mathias