Le moyen le plus simple de vérifier si une chaîne convertie en nombre est réellement un nombre dans ActionScript
Ne sais pas si cela a un sens, mais j'ai besoin de vérifier si un serveur et la valeur retournée est en fait un certain nombre. Droit maintenant, je reçois TOUTES les valeurs retournées comme des chaînes de caractères
ie '7' au lieu de 7.
Quelle est la façon la plus simple pour vérifier si les valeurs de chaîne peut effectivement être converties en nombres?
source d'informationauteur eco_bach
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple pour ce faire est de convertir la chaîne en Nombre et de tester pour voir si c'est NaN. Si vous regardez le Flex de référence de l'API, le niveau supérieur de la fonction Number() dit qu'il sera de retour NaN si la chaîne passée à la méthode ne peut pas être convertie en un Nombre.
Heureusement, Flex (un peu) fait cela pour vous, avec la fonction isNaN() fonction. Tout ce que vous devez faire est de:
Si
testFlag
est faux, la chaîne peut être converti en un nombre, sinon il ne peut pas être converti.Modifier
Le ci-dessus ne fonctionnera pas si la compilation en mode strict. Au lieu de cela, vous devez d'abord le convertir en Nombre et en vérifier alors NaN, comme suit:
N'ai pas testé, mais cela devrait fonctionner:
Si vous utilisez AS3 et/ou le mode strict (comme l'a souligné back2dos), vous aurez besoin de les convertir à nombre premier dans l'ordre pour qu'il compile:
La plupart des réponses à cette question ont un défaut majeur. Si vous prenez le Nombre(null) ou d'un Nombre(non défini) ou en Nombre(""), le tout sera de retour 0 et permettra d'évaluer "est un nombre". Essayez quelque chose comme ceci à la place:
RegExp chemin :
Voici une autre façon de vérifier si la valeur peut être convertie en un nombre:
cette trace suivantes:
Vous pouvez remarquer que dans actionscript :
et
Donc sauf pour les zéros, vous pouvez maintenant, si une chaîne est un nombre ou non
ce sera d'essayer de convertir votre
String
à unNumber
qui est essentiellement une version 64 bits à virgule flottante nombre:si
sourceString
n'est pas valideString
représentation d'unNumber
val seraNaN
(pas un nombre) ... vous devez vérifier à l'encontre de cette valeur avecisNaN
... parce queval == NaN
retourne false pour une raison qui ne comprends pas très bien ... vous pouvez utiliserint(val) == val
à vérifier, si elle est une partie intégrante de la valeur ...greetz
back2dos
Mettre ce dossier dans une fonction où vous voulez que les numéros de rester
joy_edit1 est un Objet TextInput (étincelle)
Vous devez utiliser la solution native de Adobe:
parseInt et parseFloat méthodes.
Également lire les isNaN description:
Ici est une simple mise en œuvre:
T-il m'aider?