Rexact
Cheatsheet

Regex numéro de téléphone espagnol

L'Espagne a un plan de numérotation fermé à 9 chiffres : on compose toujours les 9 chiffres, sans 0 de tronc, donc +34 612 345 678 et 612 345 678 sont le même numéro. Les mobiles commencent par 6 ou 7, les fixes par 8 ou 9. La regex mobile de validator.js écrit « [6|7] » : le tube est un caractère littéral, donc « |12345678 » passe. Une regex d'un dépôt personnel accepte « 000 000 000 » et n'importe quel indicatif international. Le paquet spain-phone ne gère pas du tout +34. Voici un motif qui impose le premier chiffre et le préfixe +34 ou 0034, comparé à ces tentatives.

/^(?:(?:\+|00)34 ?)?[6-9](?: ?[0-9]){8}$/
passe 24/24 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^(?:(?:\\+|00)34 ?)?[6-9](?: ?[0-9]){8}$", "");
re.test(input);

Limites

  • Valide seulement la FORME : ne vérifie pas que le numéro est attribué. Le motif accepte tout numéro à 9 chiffres commençant par 6 à 9, y compris des plages non attribuées ou spéciales (« 800 123 456 » gratuit, « 700 123 456 » personnel, que libphonenumber ne classe pas comme mobile).
  • Le plan est fermé à 9 chiffres : il n'y a pas de 0 de tronc, donc « 0612345678 » et « +34 0612345678 » sont rejetés. L'indicatif +34 ou 0034 est facultatif, avec une espace facultative.
  • Les espaces facultatives entre les chiffres sont une tolérance de saisie, pas une règle du plan : « 6 1 2 3 4 5 6 7 8 » passe. Normalisez le numéro en 9 chiffres avant stockage.
  • Aucune plage fictive officielle n'a été trouvée pour l'Espagne ; les exemples viennent de libphonenumber et de la suite de tests de validator.js.

Pages liées