Fonctionnement du motif
| Élément | Signification |
|---|---|
(?:\+1[-. ]?)? | Indicatif pays +1 facultatif, suivi d’un séparateur facultatif |
\(?([2-9]\d{2})\)? | Indicatif régional (groupe 1), éventuellement entre parenthèses ; il ne peut pas commencer par 0 ou 1 |
[-. ]? | Tiret, point ou espace facultatif |
(\d{3}) | Préfixe central (groupe 2) |
(\d{4}) | Numéro de ligne (groupe 3) |
Exemples de code
JavaScript
const re = /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})', value))PHP
preg_match('/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/', $value) === 1;
Remarques et limites
Les trois groupes permettent de normaliser n’importe quel format accepté, par exemple vers ($1) $2-$3. Pour les numéros internationaux, stockez-les au format E.164 et utilisez une bibliothèque comme libphonenumber pour une validation réelle.
Testeur d’expressions régulières
Saisissez un modèle et observez les correspondances s'afficher en temps réel dans votre texte de test.