Exercices les expressions régulières

Exercices les expressions régulières

  1. Objectifs

    • ِEtre capable de manipuler les expressions régulières



  2. Rappel

    • Il faut rappeler que les tests effectués en javascript ne servent qu’à assister l’utilisateur notamment dans la saisie des formulaires. Il ne faut se limiter à ces tests pour valider les données saisies par l’internaute. Un test de contrôle côté serveur (comme en PHP par exemple) sera toujours nécessaire pour valider les données renseignées.

  3. Exercice 01

    • Ecrivez un programme JavaScript pour
      compter le nombre de mots dans une chaîne (cette chaîne doive être extrait d’un texteArea).
    • Remarque :
      • Supprimez les espaces blancs des positions de début et de fin.
      • Convertissez 2 espaces ou plus en 1.
      • Excluez les nouvelles lignes avec un espacement de début.
      Correction
        <!doctype html>
        <html>
        <head>
        <title>Regex JavaScript</title>
        <style>
        fieldset
        {
        border:2px solid green;
            -moz-border-radius:8px;
            -webkit-border-radius:8px;	
            border-radius:8px;	
          /*background-color:#CCC;*/
          max-width:300px;
          padding:16px;
        margin-left: auto;
        margin-right: auto;
        }
        </style>
        <script language="JavaScript">
        function compter_mots()
        {
        str1= document.getElementById("InputText").value;
        //exclude  start and end white-space
        str1 = str1.replace(/(^\s*)|(\s*$)/gi,"");
        //convert 2 or more spaces to 1  
        str1 = str1.replace(/[ ]{2,}/gi," ");
        // exclude newline with a start spacing  
        str1 = str1.replace(/\n /,"\n");
        document.getElementById("noofwords").value = str1.split(' ').length;
        }
        </script> 
        </head>
        <body>
        <fieldset>
        <legend>Compter</legend>
        <h5>Compter le nombre de mots dans la chaîne</h5>
        <textarea id="InputText" cols="80" rows="8">
        Ecrivez un programme JavaScript pour compter le nombre 
        de mots dans la chaîne. Allez dans l’éditeur.
        Remarque :
        Supprimez les espaces blancs des positions de début et de fin.
        Convertissez 2 espaces ou plus en 1.
        Excluez les nouvelles lignes avec un espacement de début.</textarea>
          <br>
          <input type="button" name="Convert" value="Nombre des mots " onClick="compter_mots();">
          <input id = "comptermots" type="text" value="" size="6"> 
        </fieldset>
        </body>
        </html>



  4. Exercice 02

    • Ecrivez une fonction JavaScript pour vérifier la validité d’une adresse mail saisie par un internaute.
    • Le principe est le suivant : une adresse email est toujours composée comme suit :
      xxxxxxxx@xxxxxxxx.xxx
    • Une adresse e-mail sera jugée correcte si elle contient un caractère "@" et un caractère ".".
  5. Exercice 03

    • Ecrivez une fonction JavaScript pour vérifier si une chaîne donnée est une adresse IP ou non.
    • Remarque :
      • Vérifiez si la chaîne de caractères contient au moins trois points.
      • Vérifiez si la chaîne a plus de 15 caractères ou non.
      • Assurrez que les sous-chaines de caractères avant, entre et après les points ne soient que des chiffres entre 0 et 255.
      Correction
        <!doctype html>
        <html>
        <head>
        <title>Regex JavaScript Ex02</title>
        <style>
        fieldset
        {
        border:2px solid green;
            -moz-border-radius:8px;
            -webkit-border-radius:8px;	
            border-radius:8px;	
          /*background-color:#CCC;*/
          max-width:300px;
          padding:16px;
        margin-left: auto;
        margin-right: auto;
        }
        </style>
        <script language="JavaScript">
        function si_IP(str)
        {
        
         regexp =  /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)
        {3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([a-zA-Z]|
        [a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|
        [A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:
        ){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:
        [0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]
        |2[0-4]\d|1\d\d|[1-9]?\d)){3})|
        :))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|
        :((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|
        :))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?
        :((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:
        ))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:
        ((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:
        ))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:
        ((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:
        ))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:
        ((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:
        ))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:
        ((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|
        :)))(%.+)?\s*$/;
         
        str= document.getElementById("InputText").value;
        if (regexp.test(str))
                  {
                    //return true;
        document.getElementById("txtResultat").value = 'Ok';
        
                  }
                else
                  {
                    //return false;
        document.getElementById("txtResultat").value = 'Non';
                  }
        }
        </script> 
        </head>
        <body>
        <fieldset>
        <legend>Compter</legend>
        <h5>Compter le nombre de mots dans la chaîne</h5>
        <textarea id="InputText" cols="30" rows="2" placeholder=
        "Saisissez votre adresse IP"></textarea>
          <br>
          <input type="button" name="Convert" value="Validez votre saisie"
         onClick="si_IP('172.16.66.103');">
          <input id = "txtResultat" type="text" value="" size="9"> 
        </fieldset>
        </body>
        </html>

Abonnez vous à notre chaîne YouTube gratuitement