logo

 

 

Construire une regex complète

Construire une regex complète-panel consulting

Un numéro de téléphone

 

Pour cette première vraie regex, nous allons essayer de voir si une variable (entrée par un visiteur via un formulaire, par exemple) correspond bien à un numéro de téléphone.


Je vais me baser sur les numéros de téléphone français, il faudra donc m'excuser si vous n'êtes pas français et que vous ne connaissez pas. L'avantage, c'est que vous pourrez ensuite vous exercer à écrire cette regex pour les numéros de téléphone de votre pays.

 

Pour rappel (et pour ceux qui ne savent pas, donc), un numéro de téléphone français comporte 10 chiffres. Par exemple : « 01 53 78 99 99 ». Il faut respecter les règles suivantes :

 

  • le premier chiffre est TOUJOURS un 0 ;
  • le second chiffre va de 1 à 6 (1 pour la région parisienne… 6 pour les téléphones portables), mais il y a aussi le 8 (ce sont des numéros spéciaux). À noter que le 7 et le 9 commencent à être utilisés mais que nous ne les prendrons pas en compte dans nos exemples ;
  • ensuite viennent les 8 chiffres restants (ils peuvent aller de 0 à 9 sans problème).

 

Pour commencer, et pour faire simple, on va supposer que l'utilisateur entre le numéro de téléphone sans mettre d'espace ni quoi que ce soit (mais on complique juste après, et vous verrez que c'est là le véritable intérêt des regex).

 


Ainsi, le numéro de téléphone doit ressembler à ça : « 0153789999 ». Comment écrire une regex qui corresponde à un numéro de téléphone comme celui-ci ?

Voici comment je procède, dans l'ordre, pour construire cette regex.

  1. Primo, on veut qu'il y ait UNIQUEMENT le numéro de téléphone. On va donc commencer par mettre les symboles ^ et $ pour indiquer un début et une fin de chaîne : #^$#
  2. Continuons. On sait que le premier caractère est forcément un 0. On tape donc : #^0$#
  3. Le 0 est suivi d'un nombre allant de 1 à 6, sans oublier le 8 pour les numéros spéciaux. Il faut donc utiliser la classe [1-68], qui signifie « Un nombre de 1 à 6 OU le 8 » : #^0[1-68]$#
  4. Ensuite, viennent les 8 chiffres restants, pouvant aller de 0 à 9. Il nous suffit donc d'écrire [0-9]{8}pour indiquer que l'on veut 8 chiffres. Au final, ça nous donne cette regex : #^0[1-68][0-9]{8}$#

 

Et c'est tout !

 

Bon, je vois que vous êtes en forme, alors ne nous arrêtons pas en si bon chemin et améliorons cette regex. 
Maintenant, on va supposer que la personne peut taper un espace tous les deux chiffres (comme c'est courant de le faire en France), mais aussi un point ou un tiret. Notre regex devra donc accepter les numéros de téléphone suivants :

  • 0153789999
  • 01 53 78 99 99
  • 01-53-78-99-99
  • 01.53.78.99.99
  • 0153 78 99 99
  • 0153.78 99-99
  • etc.

 

Et c'est là qu'est toute la puissance des regex !
Les possibilités sont très nombreuses, et pourtant vous avez juste besoin d'écrire la regex correspondante.

 

On reprend donc la création de notre regex.

  1. Primo, le 0 puis le chiffre de 1 à 6 sans oublier le 8. Ça, ça ne change pas : #^0[1-68]$#
  2. Après ces deux premiers chiffres, il peut y avoir soit un espace, soit un tiret, soit un point, soit rien du tout (si les chiffres sont attachés). On va donc utiliser la classe [-. ] (tiret, point, espace).

Mais comment faire pour dire que le point (ou le tiret, ou l'espace) n'est pas obligatoire ? Avec le point d'interrogation, bien sûr ! Ça nous donne : #^0[1-68][-. ]?$#

  1. Après le premier tiret (ou point, ou espace, ou rien), on a les deux chiffres suivants. On doit donc rajouter [0-9]{2} à notre regex. #^0[1-68][-. ]?[0-9]{2}$#
  2. Et maintenant, réfléchissez. Il y a moyen de terminer rapidement : on a juste besoin de dire que « [-. ]?[0-9]{2} » doit être répété quatre fois, et notre regex est terminée ! On va se servir des parenthèses pour entourer le tout, et placer un {4} juste après pour indiquer que tout ça doit se répéter quatre fois. Ce qui nous donne finalement : #^0[1-68]([-. ]?[0-9]{2}){4}$#

Notre première VRAIE regex !  #^0[1-68]([-. ]?[0-9]{2}){4}$#

 

Commentaires

Autres Publications

  1. Site web e-commerce

  2. CREATION DE BOUTIQUE EN LIGNE POUR TON BUSINESS

  3. DEVKIDS CODAGE TOURS 2021

  4. APPLICATION DE GESTION POUR COMPLEXE HOTELIER ET RESIDENCE PRIVEE

  5. Bonne nouvelle à Anyama

  6. 10 ans d'existence

  7. DEVKIDS TOURS 2019, Etape Saint Marc Akeikoi

  8. DEVKIDS TOURS 2019, Etape Sainte Marie PK 18

  9. DEVKIDS TOURS 2019, Etape Saint Francois Xavier

  10. Formation des Tontons Encadreurs.

  11. DEVKIDS TOURS 2019, Etape Saint Charles Lwanga d'Adjamé

  12. Devkids Tours 2019,Etape Immaculée Conception d'Abobo

  13. Devenez Tonton Formateur DEVKIDS

  14. Devenez Intermédiaire Et Gagnez de l’Argent avec Nous

  15. DEVKIDS TOURS 2019, Et c'est reparti !!

  16. DEVKIDS TOURS 2019, ATELIER VACANCES 2019

  17. FORMATION DEVKIDS-CODAGE -INVENTER & PROGRAMMER

  18. Les métiers du digital à connaître

  19. Construire une regex complète

  20. Comment améliorer la visibilité de son site web

  21. SEO et réseaux sociaux : Savoir diversifier et équilibrer son trafic

  22. Community management

  23. 5 Bonnes raisons pour votre business d’avoir un site internet en 2019

  24. Integration de la carte Google Maps sur un site web

  25. des blocs Scratch convertis en code Arduino

  26. SYSTEMES DE MESURES : CAPTEURS OPTIQUE ET ÉLECTRONIQUE

  27. Dart 2.0 : le langage de programmation de Google sort officiellement en version stable

  28. Utiliser la base de données Android SQLite

  29. DEVKIDS-PROGRAMMATION

  30. Comment cacher une application sur son téléphone Android ?

  31. Comment créer des contenus en affinité avec son public

  32. Micro-swimmer Robot, le robot qui circule dans les veines

  33. Lollipop est désormais la version d\'Android la plus installée dans le monde

  34. ANDROID - Système d\'exploitation

S'ABONNER A NOTRE NEWSLETTER

 

 


 

 

 

Affiche formation qualifiante 2022-2023 Angre-fevrier-mars-avril-panel-consulting.jpg-panel-consulting

 

ACTUALITE EN VIDEOS

Espace d'informations et de formations


miniature
  • Posté le 25-08-2018 à 15:08:32

Devkids-codage présente devkids tours 2018 Etape Abobo

 

ceration-boutique-en-ligne-pack VIP-panel-consulting.jpg-panel-consulting

 

CEO

Events devkids-codage

devkids-codage-panel-consulting-devkids_tours_2021.jpg - panel consulting

Nos videos devkids-codage

S5pJDhfJ5UI - panel consulting
Devkids-codage présente devkids tours 2018 Etape Abobo

Photos devkids-codage

Devkids-codage abobo-Saint-Marc-Akeikoi-Panel-Consulting 117-Devkids tours 2019.jpg - panel consulting

 

SAVEZ-VOUS QUE ?

Espace d'informations et de formations


ceration-boutique-en-ligne-pack VIP-panel-consulting.jpg - panel consulting
  • Posté le 29-11-2022 à 16:11:51

Site web e-commerce

 

NOS PARTENAIRES

logo Chekina Business Center.png
logo_longrich_team_vision_plus.jpg
logo_benigloryservices.jpg
logo_longrich_emeraude.jpg
logo ds market.jpeg
logo YD.png
assistance sociale - light-star.jpg
logo ariel service.png
YES CHALLENGE.jpg