Wie bekomme ich einen ganzzahligen Wert aus einem Textfeld? Wie überprüfe ich, ob es NaN oder null ist?

7

Ich ziehe einen Wert über JavaScript aus einer Textbox. Wenn das Textfeld leer ist, wird NaN zurückgegeben. Ich möchte eine leere Zeichenfolge zurückgeben, wenn sie null, leer usw. ist.

Was mache ich? if(NAN = tb.value) ?

    
Blankman 27.04.2009, 13:15
quelle

4 Antworten

16

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):

%Vor%     
Tor Haugen 27.04.2009, 13:52
quelle
2

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.

    
fforw 27.04.2009 14:17
quelle
1

Angenommen, Sie haben einen Verweis auf das Eingabetextfeld:

%Vor%     
Ben Lowery 27.04.2009 14:39
quelle
0

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.

    
TheTXI 27.04.2009 13:18
quelle

Tags und Links