Pregunta

Quiero validar un campo de entrada. El usuario debe introducir un número de teléfono con una longitud mínima de 10 dígitos.

Así que necesito para comprobar si hay caracteres ilegales. Sería bueno sólo para comprobar tiempo lo que la entrada es un número entero o no.

Se me ocurrió esto, pero no funciona (n sería la cadena).

function isInt(n){
    return typeof n== 'number' && n%1==0;
}

¿Alguna idea?

¿Fue útil?

Solución

Se puede hacer una prueba de la siguiente manera:

input.length >= 10 && /^[0-9]+$/.test(input)

que pueden fallar si hay no-dígitos en la cadena o la cadena es inferior a 10 caracteres de largo

Otros consejos

Esto debería funcionar ((input - 0) intenta convertir el valor a un número automáticamente):

function isInt(input){
   return ((input - 0) == input && input % 1==0);
}

Ya existe un SO-consulta sobre este tema: Validar números decimales en JavaScript - IsNumeric ( )

Podría ser una exageración para usted, pero Google hace mucho tiempo no ha anunciado una biblioteca para la validación de teléfono. Java y Javascript variantes están disponibles.

La validación de un número de teléfono es un poco más complicado que comprobar si la entrada es un entero. A modo de ejemplo, números de teléfono pueden y de hecho comienzan con ceros por lo que no es técnica y int. También los usuarios pueden introducir guiones: Por ejemplo:

00 34 922-123-456

Por lo tanto, como para la validación de que usted tiene un par de opciones:

  • El uso de expresiones regulares para validar la expresión, echar un vistazo a:

    http://regexlib.com/

    este sitio tendrá cientos de ejemplos

  • El uso de bucle para comprobar cada personaje, a su vez, es decir, es de tipo int carácter o un guión

recomendaría el primero como el último depende de la entrada constante de los usuarios y no se va a conseguir que

¿Por qué no usar:

return (+val === ~~val && null !== val);

como una vuelta en su función?

esta es la salida de la consola de JavaScript

> +"foobar" === ~~"foobar"
  false
> +1.6 === ~~1.6
  false
> +'-1' === ~~'-1'
  true
> +'-1.56' === ~~'-1.56'
  false
> +1 === ~~1
  true
> +-1 === ~~-1
  true
> +null === ~~null // this is why we need the "&& null !== val" in our return call
  true 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top