Rexact
Cheatsheet

Regex numéro de téléphone mexicain

Depuis le 3 août 2019, le Mexique compose 10 chiffres pour tous les numéros, fixes et mobiles : le préfixe 01 (longue distance) et les préfixes 044 et 045 (mobiles) ont été supprimés. Un numéro est donc une clé lada de 2 ou 3 chiffres (55 Mexico, 33 Guadalajara, 81 Monterrey, 222 Puebla) suivie de 8 ou 7 chiffres, avec +52 depuis l'étranger. Les tentatives réelles relues ne suivent pas cette règle : la regex de validator.js accepte « 01 » et « 1 » devant 10 ou 11 chiffres, celle de CakePHP accepte des numéros à 8 ou 13 chiffres et celle de sent.dm n'accepte que +52 collé. Voici un motif qui impose 10 chiffres et un premier chiffre de 2 à 9, comparé à ces tentatives.

/^(?:(?:\+|00)52 ?(?:1 ?)?)?(?:[2-9][0-9][ -]?[0-9]{4}|[2-9][0-9]{2}[ -]?[0-9]{3}|\([2-9][0-9]\) ?[0-9]{4}|\([2-9][0-9]{2}\) ?[0-9]{3})[ -]?[0-9]{4}$/
passe 35/35 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^(?:(?:\\+|00)52 ?(?:1 ?)?)?(?:[2-9][0-9][ -]?[0-9]{4}|[2-9][0-9]{2}[ -]?[0-9]{3}|\\([2-9][0-9]\\) ?[0-9]{4}|\\([2-9][0-9]{2}\\) ?[0-9]{3})[ -]?[0-9]{4}$", "");
re.test(input);

Limites

  • Valide seulement la FORME : ne vérifie pas que le numéro est attribué ni que la clé lada existe : tout premier chiffre de 2 à 9 passe. libphonenumber liste les clés réelles, que ce motif ne reprend pas.
  • Les anciens préfixes 01 (longue distance), 044 et 045 (mobiles), supprimés le 3 août 2019, sont rejetés. L'ancien format international « +52 1 55… » des mobiles est en revanche accepté par tolérance.
  • Fixes et mobiles ont désormais la même forme : le motif ne les distingue pas. Les numéros gratuits 800 et 888 ont aussi 10 chiffres et passent ; les numéros 900 et 300 également.
  • Séparateurs : espace ou tiret facultatifs en positions 2-4-4 ou 3-3-4 ; parenthèses autour de la clé lada acceptées si elles sont appariées. Les points et les extensions sont rejetés.

Numéros de téléphone d’autres pays

Pages liées