Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/05/2014, 09:09
PHPeros
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: ¿Cómo Validar si un número escrito es válido?

Cita:
Iniciado por Alexis88 Ver Mensaje
Un valor es un número válido si no es un isNaN
Sin embargo, comprobar si cierto valor es un número únicamente mediante la función isNaN() es un error muy frecuente.

Quiero que veas lo que ocurre si dejas el campo vacío y presionas la tecla Enter... automáticamente ese string vacío se transforma en un 0, que claramente es un número válido:

Código Javascript:
Ver original
  1. alert(Number("")); // 0

La forma más adecuada de comprobarlo es utilizando el constructor typeof, pero en este caso como lo que obtenemos del input es siempre texto, se requiere dicha conversión. Pero antes de ello debes pasarle un trim() para quitar posibles espacios en blanco; tabulaciones, saltos de línea etc. ya que todos ellos equivalen a 0, incluyendo el string vacío por supuesto, pero éste debes excluirlo manualmente con un AND:

Código Javascript:
Ver original
  1. valor = valor.trim();
  2.  
  3. if (!isNaN(valor) && valor != ""){
  4.     alert ("Es un número");
  5. }else{
  6.     alert ("No es un número");
  7. }

De esta forma consigues algo coherente.


Saludos.

Última edición por PHPeros; 07/05/2014 a las 10:32