Hm, hier ist etwas fischig.
In welchem Browser gibt ein leeres Textfeld NaN zurück? Ich habe das nie gesehen und kann es nicht reproduzieren.
Der Wert eines Textfelds ist tatsächlich eine Zeichenfolge. Ein leeres Textfeld gibt eine leere Zeichenfolge zurück!
Oh, und um zu überprüfen, ob etwas NaN ist, sollten Sie Folgendes verwenden:
%Vor% Hinweis: Die isNaN()
-Funktion gibt true
für alles zurück, was nicht als Zahl geparst werden kann, außer für leere Zeichenfolgen. Das bedeutet, es ist eine gute Überprüfung für numerische Eingaben (viel einfacher als Regexes):
Sie können es auch so machen:
%Vor%NaN ist nichts, nicht einmal sich selbst.
Wenn Sie nicht + verwenden möchten, um von String in Zahl zu konvertieren, verwenden Sie das normale parseInt, aber denken Sie daran, immer eine Basis anzugeben
%Vor%sonst "08" wird 0, weil Javascript denkt, dass es eine Oktalzahl ist.
Angenommen, Sie haben einen Verweis auf das Eingabetextfeld:
%Vor%Eine Sache, die Sie tun können, ist eine Regex-Prüfung auf den Wert des Textfelds und stellen Sie sicher, dass es das Format einer akzeptierten Zahl passt, und wenn es zum Format passt führen Sie Ihren Prozess andernfalls eine leere Zeichenfolge zurück.
Bearbeiten : Dies ist ein Beispiel aus einem Code, den ich vor mir habe (möglicherweise nicht der beste reguläre Ausdruck):
%Vor%Edit 2 : Ich sollte auch beachten, dass ich ASP.NET verwende, weshalb ich die etwas unkonventionelle Art habe, auf die Textbox zuzugreifen. In Ihrem normalen JavaScript-Fall ist es möglicherweise nicht so überladen.
Tags und Links javascript numbers nan