L'obtention d'une valeur entière à partir d'une zone de texte, comment faire pour vérifier si il est NaN ou null etc?
Je suis en tirant une valeur via JavaScript à partir d'une zone de texte. Si la zone de texte est vide, il retourne NaN
. Je veux renvoie une chaîne vide si c'est nul, vide, etc.
Quelle case dois-je faire? if(NAN = tb.value)
?
Être plus précis s'il vous plaît: c'est quoi, la zone de texte (saisie de texte, textarea , select liste ou quoi)? Pas de "zone de texte" valeur (vide ou non) renvoie NaN par lui-même, à ma connaissance.
La zone de texte retour NaN ou avez-vous l'analyser à flotteur/integer premier (ce qui signifierait que parseFloat/Int) renvoie NaN.
vouliez-vous dire: si(NAN == tb.valeur) // (deux égale à titre de comparaison)
Double Possible de convertit une chaîne en un nombre en javascript
La zone de texte retour NaN ou avez-vous l'analyser à flotteur/integer premier (ce qui signifierait que parseFloat/Int) renvoie NaN.
vouliez-vous dire: si(NAN == tb.valeur) // (deux égale à titre de comparaison)
Double Possible de convertit une chaîne en un nombre en javascript
OriginalL'auteur Blankman | 2009-04-27
Vous devez vous connecter pour publier un commentaire.
Hm, quelque chose de louche ici.
Dans ce navigateur ne une zone de texte vide de retour NaN? Je n'ai jamais vu cela se produire, et je ne peux pas le reproduire.
La valeur d'une zone de texte est en fait une chaîne de caractères. Une zone de texte vide retourne une chaîne vide!
Oh, et pour vérifier si quelque chose est NaN, vous devez utiliser:
Remarque: Le
isNaN()
-fonction renvoietrue
pour tout ce qui ne peut être analysé comme un nombre, sauf pour les cordes à vide. Cela signifie que c'est une bonne façon pour les entrées numériques (beaucoup plus facile que regexes):OriginalL'auteur Tor Haugen
Vous pouvez également le faire de cette façon:
NaN est égal à rien, pas même de lui-même.
si vous n'aimez pas utiliser + pour convertir de la Chaîne de Numéro, utilisez la normale parseInt, mais n'oubliez pas de toujours donner une base
autrement "08" devient 0, car Javascript pense que c'est un nombre octal.
OriginalL'auteur fforw
En supposant que vous avez une référence à la zone de saisie:
OriginalL'auteur Ben Lowery
Une chose que vous pourriez faire est une regex pour vérifier la valeur de la textbox et assurez-vous qu'il s'adapte au format de l'acceptés nombre, et puis si elle est adaptée au format d'effectuer vos processus, sinon renvoie une chaîne vide.
Modifier: C'est un exemple du code que j'ai en face de moi (peut-être pas la meilleure expression régulière):
Edit 2: je dois aussi préciser que je suis en utilisant ASP.NET c'est pourquoi j'ai légèrement funky moyen d'accéder à la zone de texte. Dans votre JavaScript cas, il peut ne pas être encombré.
OriginalL'auteur TheTXI