Lire un cookie javascript | Développement Web

Lire un cookie javascript

L’article précédent montrait comment créer un cookie en Javascript. Ici, nous allons voir comment le lire, l’exploiter.

Lire un cookie en Javascript

Pour lire un cookie, nous allons créer une fonction que nous nommerons getCookie. La fonction retournera une chaîne de caractères contenant tous les éléments du cookie. Le travail consistera alors à traiter cette chaîne de caractères.

Pour récupérer le contenu du cookie que l’on souhaite traiter, il faudra lui passer en paramètre son nom.


   function getCookie(name){
     if(document.cookie.length == 0)
       return null;

     var regSepCookie = new RegExp('(; )', 'g');
     var cookies = document.cookie.split(regSepCookie);

     for(var i = 0; i < cookies.length; i++){
       var regInfo = new RegExp('=', 'g');
       var infos = cookies[i].split(regInfo);
       if(infos[0] == name){
         return unescape(infos[1]);
       }
     }
     return null;
   }

Explications

La fonction getCookie() attend en paramètre le nom du cookie. Si le cookie n’est pas trouvé ou n’existe pas, la fonction retourne null.

Si aucun cookie n’existe, la fonction retourne aussitôt null. Sinon, elle retounera un chaîne de caractères sous la forme nom1 = valeur1; nom2 = valeur2; … ; nomN = valeurN.

Chaque couple nom / valeur est séparé d’un point-virgule suivi d’un espace.

Si le paramètre name est égal au nom du cookie recherché, notre fonction retourne la valeur du cookie associée, décodée à l’aide de la fonction unescape().

En reprenant l’exemple précédent pour la création d’un cookie, la syntaxe utilisée pour le récupérer sera :


   function  getCookie(name){
     if(document.cookie.length == 0)
       return null;

     var regSepCookie = new RegExp('(; )', 'g');
     var cookies = document.cookie.split(regSepCookie);

     for(var i = 0; i < cookies.length; i++){
       var regInfo = new RegExp('=', 'g');
       var infos = cookies[i].split(regInfo);
       if(infos[0] == name){
         return unescape(infos[1]);
       }
     }
     return null;
   }

   document.write('myCookie a pour valeur : ' + getCookie('myCookie'));
   // Affichera "myCookie a pour valeur : développement web"

Pour supprimer un cookie en javascript, vous pouvez lire la suite de l’article, à savoir comment supprimer un cookie.