227 votes

Valider un numéro de téléphone avec JavaScript

J'ai trouvé ce code sur un site web, et il fonctionne parfaitement. Il valide que le numéro de téléphone est dans l'un de ces formats :
(123) 456-7890 ou 123-456-7890

Le problème est que mon client (je ne sais pas pourquoi, peut-être des trucs de client) veut ajouter un autre format, les dix numéros consécutifs, quelque chose comme ça : 1234567890 .

J'utilise cette expression régulière,

/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/

Comment puis-je ajouter qu'il valide également l'autre format ? Je ne suis pas doué pour les expressions régulières.

1voto

bjoxiah Points 11

Essayez cette fonction js. Retourne true si elle correspond et false si elle échoue Réf

function ValidatePhoneNumber(phone) {
        return /^\+?([0-9]{2})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{4})$/.test(phone);
}

0voto

sahed sawon Points 143

Expression régulière simple : /\b\d{3}[-.]?\d{3}[-.]?\d{4}\b/g

Consultez le format, en espérant qu'il fonctionne :
444-555-1234
f:246.555.8888
m:1235554567

0voto

Dacmeaux Points 9
\\(?\d{3}\\)?([\-\s\.])?\d{3}\1?\d{4}

Ceci validera n'importe quel numéro de téléphone de format variable :

\\(?\d{3}\\)? trouve 3 chiffres entre parenthèses ou non.

([\-\s\.])? trouve ou non l'un de ces caractères de séparation

\d{3} trouve 3 chiffres

\1 utilise le premier séparateur correspondant, ce qui garantit que les séparateurs sont identiques. Ainsi, (000) 999-5555 ne sera pas validé ici parce qu'il y a un espace et un tiret comme séparateurs. \1 "et remplacer par le sous-modèle du séparateur (ce qui permettra également de valider les formats non standard). Vous devriez cependant donner des indications de format pour les entrées de l'utilisateur de toute façon.

\d{4} trouve 4 chiffres

Valide :

  • (000) 999 5555
  • (000)-999-5555
  • (000).999.5555
  • (000) 999-5555
  • (000)9995555
  • 000 999 5555
  • 000-999-5555
  • 000.999.5555
  • 0009995555

BTW ceci est pour JavaScript d'où les doubles échappements.

0voto

Maxym Points 11

Essayez ceci

/^[\+]?\d{2,}?[(]?\d{2,}[)]?[-\s\.]?\d{2,}?[-\s\.]?\d{2,}[-\s\.]?\d{0,9}$/im

formats valables :

  1. (123) 456-7890
  2. (123)456-7890
  3. 123-456-7890
  4. 123.456.7890
  5. 1234567890
  6. +31636363634
  7. +3(123) 123-12-12
  8. +3(123)123-12-12
  9. +3(123)1231212
  10. +3(123) 12312123
  11. 075-63546725

0voto

Un RegExp aux chiffres de l'Argentine : /^((+[0-9]{1,3}))?(([0-9]{8,13})|([0-9]{3,6})-([0-9]{4,7}))$/

Valides :

X : de 8 à 13 chiffres XXXXXXXX séparer les chiffres par un trait d'union = X de 3 à 6 ; Y : de 4 à 7 XXXX-YYYY Z : de 1 à 3* (+Z)XXXXXXXX si vous utilisez Z, le signe (+ ) est obligatoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X