ACTION SCRIPT: DETECTAR SI UNA CADENA ES NUMÉRICA

Supongamos que tenemos una entrada de usuario en una variable de cadena y queremos saber si el usuario ha tecleado un número o no.
Podríamos pensar que la solución es preguntar si es un número. Esto no funciona.

if(variable is Number) ... no funciona. Siempre devuelve falso, porque la variable es una cadena de caracteres, no un número.

ActionScript no interpreta una cadena numérica como un número. El operador "is" no ayuda

Como alternativa podríamos pensar que si es posible convertir la cadena en un número entero, será numérica, y en caso contrario no lo será. Esto no funciona.

if(parseInt(variable) is Number) ... no funciona. Siempre devuelve verdadero cuando la cadena contiene números, porque el número extraido siempre es un número.

Milagrosamente el número extraido no es comparable consigo mismo cuando la cadena contiene letras. Esa es la solución.

public static function esNumerico(valor:String):Boolean
{
//AS3 no interpreta una cadena numerica como un número
//"hola54" is Number ==> false
//"54" is Number ==> false

//AS3 extrae los números a un entero que siempre es un número
//parseInt("hola54") is Number ==> true
//parseInt("54") is Number ==> true

//AS3 no puede comparar el número extraído
// parseInt("hola54")==parseInt("hola54") ==> false
// parseInt("54")==parseInt("54") ==> true

return( parseInt(valor) == parseInt(valor) );
}






blog31 - ACTION SCRIPT: DETECTAR SI UNA CADENA ES NUMÉRICA - - -SUSCRIPCIONES - - -http://www.rojasdelgado.com