Probleme format date google app script

bonjour, 

ma fonction regex dit que mon format date est faux, il défini de la manière suivante YYYY/MM/JJ


  var format = /[0-9]{4}\/[0-9]{2}\/[0-9]{2}/;

je ne comprends pas erreur le format me semble correcte

merci pour votre aide

cordialement 

2 réponses

  1. Modérateur

    Bonjour,

    A quel moment te dit il qu'il est faux ( quel code ? )

    Quelle est la valeur exacte qui est utilisée par ton code à ce moment là ? (l'as tu affiché pour vérifier ? )


    1. function Date () {
      
      var app = SpreadsheetApp;
      
      var feuille = app.getActiveSpreadsheet () .getActiveSheet (); 
      
      var cellule = feuille.getRange ('G3')
      .getValue (); 
      
      var format = /[0-9]{4}\/[0-9]{2}\/[0-9]{2}/;
      
      var analyse = format.test (cellule); 
      
      Logger.log (analyse);
      
      if (analyse != false) { 
      
      feuille.getRange ('F3')
      .setValue ("Vrai");
      
      } else { 
      
      feuille.getRange ('F3')
      .setValue ("Faux");
       
      } 
      };

      J'ai écrit dans la cellule G3 2000/10/10 et il renvoit faux à côté de cette valeur alors que c'est du format YYYY/MM/JJ ?

    2. Modérateur
      @lwdu76

      attention, je pense que google sheet se comprte comme excel... Et donc , une date n'est pas une string... Il faut utiliser les fonctions relatives aux dates (comme is_date() par exemple).

    3. @jordane45

      D'accord Oui j'ai fait un toformatdatelocale et après utiliser une regex pour vérifier que la valeur est vrai 

    4. Bonjour, j'ai un soucis avec ma fonction je voudrais que ma fonction prenne un paramètre cellule et qu'il me renvoi vrai si la cellule est bien du format yyyy/mm/dd (date) grace a la variable format j'ai écrit ceci 

      function Dates (cellule) {
      
        var format = cellule.toLocaleDateString ('en-ZA');
      
        const regex = new RegExp ();
      
        var resultat = "";
      
        analyse = regex.test (format);
      
        Logger.log (analyse);
      
        if (analyse != false){
      
          resultat = "Vrai";
      
        } else { 
      
          resultat = "Faux";
        }
      
        return resultat;
      };
      
    5. Modérateur
      @lwdu76

      Bonjour

      Tu n'as pas déclaré de regex

      Tu sembles inverser les variables dans leur utilisation

      Bref, je t'invite à consulter un peu de documentation ou des tutoriels comme par exemple

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test