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. DEVKIDS CODAGE TOURS 2021

  2. APPLICATION DE GESTION POUR COMPLEXE HOTELIER ET RESIDENCE PRIVEE

  3. Bonne nouvelle à Anyama

  4. 10 ans d'existence

  5. DEVKIDS TOURS 2019, Etape Saint Marc Akeikoi

  6. DEVKIDS TOURS 2019, Etape Sainte Marie PK 18

  7. DEVKIDS TOURS 2019, Etape Saint Francois Xavier

  8. Formation des Tontons Encadreurs.

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

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

  11. Devenez Tonton Formateur DEVKIDS

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

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

  14. DEVKIDS TOURS 2019, ATELIER VACANCES 2019

  15. FORMATION DEVKIDS-CODAGE -INVENTER & PROGRAMMER

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

  17. Construire une regex complète

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

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

  20. Community management

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

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

  23. des blocs Scratch convertis en code Arduino

  24. SYSTEMES DE MESURES : CAPTEURS OPTIQUE ET ÉLECTRONIQUE

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

  26. Utiliser la base de données Android SQLite

  27. DEVKIDS-PROGRAMMATION

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

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

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

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

  32. ANDROID - Système d\'exploitation

S'ABONNER A NOTRE NEWSLETTER

 

 

 

 

 

web service 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

 

application-de-gestion-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


devkids-codage-panel-consulting-devkids_tours_2021.jpg - panel consulting
  • Posté le 03-06-2021 à 20:06:27

DEVKIDS CODAGE TOURS 2021

 

NOS PARTENAIRES

logo YD.png
assistance sociale - light-star.jpg
logo ariel service.png
YES CHALLENGE.jpg