Médiaforma

PHP MySQL – Classes abrégées

Print Friendly

Pour simplifier l’écriture des expressions régulières, vous pouvez utiliser des classes abrégées. Faites une pause dans la vidéo et examinez le tableau suivant. Une fois ce tableau examiné, vous pourrez reprendre pour passer à la pratique avec un premier exercice.

Classe abrégée Correspondance
\d [0-9]
\D [^0-9]
\w [a-zA-Z0-9_]
\W [^a-zA-Z0-9_]
\t Tabulation
\n Saut de ligne
\r Retour chariot
\s Espace blanc (correspond à \t\n\r)
\S Un caractère différent d’un espace

 

Pour savoir si vous avez compris, vous allez faire plusieurs exercices :

Exercice 1

Définissez une fonction qui teste si une date est bien formée, c’est-à-dire qu’elle respecte le format suivant :

JJ/MM/AAAA

Si la chaîne est bien formée, la fonction doit retourner le texte suivant, affiché en vert :

La chaîne … est une date valide

Où … représente la chaîne testée.

Dans le cas contraire, la fonction doit retourner le texte suivant, affiché en rouge :

La chaîne … n'est pas une date valide

Où … représente la chaîne testée.

 

Passez consécutivement les trois chaînes suivantes à la fonction :

 

$ch1 = "125/12/45";  // Mal formée
$ch2 = "14/09/2016"; // Bien formée
$ch3 = "18:06:13";   // Mal formée

Vous devriez obtenir le résultat suivant :

 

 

Solution

Faites une pause dans la vidéo et rédigez le code de l’exercice. Vous pourrez poursuivre la vidéo pour découvrir la solution et la comparer avec votre propre code.

Les dates à tester sont mémorisées dans les variables $ch1, $ch2 et $ch3.

Dans un deuxième temps, ces variables sont passées à la fonction testDate.

Examinons le code de la fonction testDate.

L’expression régulière est passée à la fonction preg_match. Comme toujours, elle est encadrée par le caractère #, au début et à la fin de la chaîne.

La date sera considérée comme valide si elle contient :

\d{1,2}     Un ou deux chiffres compris entre 0 et 9

Un caractère /

\d{1,2}     Un ou deux chiffres compris entre 0 et 9

Un caractère /

\d{4] Quatre chiffres compris entre 0 et 9

 

<?php
  function testDate($d){
    if (preg_match("#\d{1,2}/\d{1,2}/\d{4}#",$d))
      return "<font color=\"green\">La chaîne $d est une date valide</font><br>";
    else
      return "<font color=\"red\">La chaîne $d n'est pas une date valide</font><br>";
  }

  $ch1 = "125/12/45";  // Mal formée
  $ch2 = "14/09/2016"; // Bien formée
  $ch3 = "18:06:13";   // Mal formée

  echo testDate($ch1);
  echo testDate($ch2);
  echo testDate($ch3);
?>
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply