Question

Je veux valider un champ de saisie. L'utilisateur doit saisir un numéro de téléphone avec une longueur minimum de 10 chiffres.

Je dois donc vérifier les caractères illégaux. Ce serait bien juste pour vérifier wheather l'entrée est un nombre entier ou non.

Je suis venu avec cela, mais il ne fonctionne pas (n serait la chaîne).

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

Toutes les idées?

Était-ce utile?

La solution

Vous pouvez faire un test comme celui-ci:

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

Ce échouera s'il y a des non-chiffres dans la chaîne ou la chaîne est inférieure à 10 caractères de long

Autres conseils

Cela devrait fonctionner ((input - 0) essaie automatiquement de convertir la valeur à un nombre):

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

Il existe déjà un SO-question sur cette question: Valider des nombres décimaux en JavaScript - IsNumeric ( )

peut-être trop pour vous, mais Google n'a pas trop longtemps annoncé une bibliothèque pour la validation du téléphone. variantes Java et Javascript sont disponibles.

Valider un numéro de téléphone est un peu plus compliqué que de vérifier si l'entrée est un entier. En tant que numéros de téléphone par exemple peuvent et ne commencent par des zéros il est donc pas techniquement et int. Aussi les utilisateurs peuvent entrer des tirets: Par exemple:

00 34 922-123-456

Alors, comme pour valider que vous avez deux options:

  • Utiliser l'expression regex pour valider, jeter un oeil à:

    http://regexlib.com/

    ce site aura des centaines d'exemples

  • Utilisation de bouclage pour vérifier chaque caractère, à son tour, à savoir le caractère est un entier ou un tiret

Je recommande l'ancien que celui-ci dépend de l'entrée constante des utilisateurs et que vous n'allez obtenir que

Pourquoi ne pas utiliser:

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

comme un retour dans votre fonction?

est la sortie de la console 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 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top