Immer ein integer-Wert aus einem Textfeld, wie Sie überprüfen, wenn es ist NaN oder null, etc?
Bin ich ziehen den Wert per JavaScript aus einer textbox. Wenn die textbox leer ist, gibt es NaN
. Ich möchte eine leere Zeichenfolge zurück, wenn es null -, leeren, etc.
Überprüfen, was kann ich tun? if(NAN = tb.value)
?
- Genauer bitte: was ist das Textfeld (eine text-input -, textarea -, select-Liste oder was)? Keine 'Textfeld' Wert (leer oder nicht) NaN zurück, indem sich meines Wissens.
- Hat die textbox return NaN oder tun Sie analysieren, es zu float - /integer-erste (was bedeuten würde, dass parseFloat/Int) NaN zurück.
- meinst du: wenn(NAN == tb.Wert) // (zwei Gleichheitszeichen zum Vergleich)
- Mögliche Duplikate von konvertieren von string zu einer Zahl in javascript
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hm, etwas ist faul hier.
In dem, was der browser tut eine leere textbox return NaN? Ich habe noch nie gesehen, dass passieren, und das kann ich nicht reproduzieren.
Den Wert einer text-box ist in der Tat eine Zeichenfolge. Eine leere text-Feld eine leere Zeichenfolge zurück!
Oh, und zu prüfen, ob etwas ist "NaN", sollten Sie verwenden:
Hinweis: Die
isNaN()
-Funktion gibttrue
für alles, was nicht analysiert werden kann als Zahl, ausser für leere Saiten. Das bedeutet, dass es eine gute Kontrolle für die numerische Eingabe (viel einfacher als regexes):Können Sie auch tun, es auf diese Weise:
NaN ist gleich nichts, nicht einmal sich selbst.
wenn Sie nicht mögen, verwenden Sie+, um konvertieren von String zu Zahl, verwenden Sie die normale parseInt, aber denken Sie daran, immer geben Sie eine Basis
sonst "08" wird zu 0, weil Javascript denkt, es ist eine Oktalzahl.
Angenommen Sie haben eine Referenz auf das input-text-Feld:
Eine Sache, die Sie tun können, ist ein regex Prüfung auf den Wert des Textfelds und stellen Sie sicher, es passt das format akzeptiert eine Zahl, und wenn es dann passt das format der Durchführung der Verfahren, andernfalls wird ein leerer string zurückgegeben.
Bearbeiten: Dies ist ein Beispiel von einigen code habe ich vor mir (vielleicht nicht die beste regulärer Ausdruck):
Edit 2: ich sollte auch beachten, dass ich mit ASP.NET das ist, warum ich habe die etwas funky Möglichkeit, den Zugriff auf die textbox. In Ihrem normalen JavaScript-Fall kann es nicht so überladen.