Vinzenz Mai: IsNumeric Abfrage - zur Überprüfung

Beitrag lesen

Hallo Martin,

function IsNumeric(value) {
    var bool = isNaN(+value));
    bool = bool || (value.indexOf('.') != -1);
    bool = bool || (value.indexOf(",") != -1);
    return !bool;
}

du arbeitest mit invertierter Logik, scheint mir.

und schafft es durch intensive Verwendung dieser Dich erfolgreich zu verwirren.

Deine Hilfsvariable bool hat zunächst die Bedeutung "IsNotNumeric", und du gibst zum Schluss den Komplementärwert zurück.

Also bedeutet dein Code:
* value ist *nicht* numerisch, wenn isNaN() zutrifft
* value ist *nicht* numerisch, wenn kein Punkt darin vorkommt

Du übersiehst hier die doppelte Verneinung innerhalb der invertierten Logik:
 * value bleibt *nicht* numerisch, wenn ein Punkt nicht nicht gefunden wird,
   d.h. wenn ein Punkt darin gefunden wird ...

* value ist *nicht* numerisch, wenn kein Komma darin vorkommt

* value bleibt *nicht* numerisch, wenn ein Komma darin vorkommt
     (nicht nicht gefunden wird).
   Weil isNaN false zurückliefert, wenn ein Komma im Wert vorkommt,
   ist diese Prüfung überflüssig.

Gunnar und ich vermuten, dass Peter ganze Zahlen erkennen will.

Freundliche Grüße

Vinzenz