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. APPLICATION WEB DE GESTION DE COMPLEXE HÔTELIER ET RESIDENCE PRIVÉE

  2. Site web e-commerce

  3. CREATION DE BOUTIQUE EN LIGNE POUR TON BUSINESS

  4. DEVKIDS CODAGE TOURS 2021

  5. APPLICATION DE GESTION POUR COMPLEXE HOTELIER ET RESIDENCE PRIVEE

  6. Bonne nouvelle à Anyama

  7. 10 ans d'existence

  8. DEVKIDS TOURS 2019, Etape Saint Marc Akeikoi

  9. DEVKIDS TOURS 2019, Etape Sainte Marie PK 18

  10. DEVKIDS TOURS 2019, Etape Saint Francois Xavier

  11. Formation des Tontons Encadreurs.

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

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

  14. Devenez Tonton Formateur DEVKIDS

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

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

  17. DEVKIDS TOURS 2019, ATELIER VACANCES 2019

  18. FORMATION DEVKIDS-CODAGE -INVENTER & PROGRAMMER

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

  20. Construire une regex complète

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

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

  23. Community management

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

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

  26. des blocs Scratch convertis en code Arduino

  27. SYSTEMES DE MESURES : CAPTEURS OPTIQUE ET ÉLECTRONIQUE

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

  29. Utiliser la base de données Android SQLite

  30. DEVKIDS-PROGRAMMATION

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

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

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

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

  35. ANDROID - Système d\'exploitation

S'ABONNER A NOTRE NEWSLETTER

 

 


 

 

 

Affiche formation qualifiante 2023-202 cocody-decembre-janvier-fevrier-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

 

site web e-commerce -Boutique en ligne - 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


vue receptioniste-application de gestion - Hôtel - Résidence - Panel Consulting.jpg - panel consulting
  • Posté le 04-10-2023 à 10:10:03

APPLICATION WEB DE GESTION DE COMPLEXE HÔTELIER ET RESIDENCE PRIVÉE

 

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