Expression régulière pour valider les numéros de téléphone américains? [dupliquer]
Doublon Possible:
une regex complète pour la validation du numéro de téléphone
valider le numéro de téléphone avec JavaScript
J'essaie d'écrire une expression régulière pour valider le numéro de téléphone américain du format (123 ) 123-1234 -- vrai 123-123-1234 -- true
Tout le reste n'est pas valide.
Je suis venu quelque chose comme
^(?([0-9]{3})?[-]([0-9]{3})[-]([0-9]{4})$
Mais cela valide, 123)-123-1234 (123-123-1234
Ce qui N'est pas juste.
1 réponses
Le moyen le plus simple de faire correspondre les deux
^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$
Et
^[0-9]{3}-[0-9]{3}-[0-9]{4}$
Est d'utiliser alternance ((...|...)
): spécifiez-les comme deux options principalement distinctes:
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$
En passant, quand les Américains mettent l'indicatif régional entre parenthèses, nous mettons en fait un espace après cela; par exemple, j'écrirais (123) 123-1234
, Pas (123)123-1234
. Donc, vous pouvez écrire:
^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$
(bien qu'il soit probablement préférable de démontrer explicitement le format dans lequel vous vous attendez à ce que les numéros de téléphone soient.)