Probleme fonction app script

Résolu

bonjour,

j'essaie de faire respecter le format d'entrée de 4 nombre dans la cellule mais j'ai l'impression que ca ne marche pas 

j'ai réalisé ceci

function Nombre () { 

  var feuille = SpreadsheetApp.getActiveSpreadsheet ()

                              .getActiveSheet (); 

  var format = /[0-9]/; 

  const longueur = 4;

  const regex = new RegExp (); 

  var chiffre = format.test (); 

  if ((chiffre > 0 | chiffre <= longueur) == true) { 

    myvar = feuille.getRange ('A4')

                   .getValue (); 

    Logger.log (regex.test ()); 

  } else { 

    Browser.msgBox("vous devez respecter le format");

  }

};

2 réponses

  1. Modérateur

    Bonjour

    La méthode test() vérifie s'il y a une correspondance entre un texte et une expression rationnelle. Elle retourne true en cas de succès et false dans le cas contraire.

    Donc ta variable chiffre est juste un booleen ..

    De plus, tu as oublié un paramètre lors de l'appel de la méthode test

    Le nombre à vérifier.....

    Voici un exemple d'utilisation

    const chaine = "coucou le monde !";
    const resultat = /^coucou/.test(chaine);

    1. function NomSource2 () {
      
        var app = SpreadsheetApp;
      
        var feuille = app.getActiveSpreadsheet ()
                         .getActiveSheet (); 
      
        var cellule = feuille.getRange ('G3')
                             .getValue ();
        
        var format = /[a-z] | [A-Z]/; 
      
        analyse = format.test (cellule);
      
        Logger.log (analyse);
      
        if (analyse >= 5 | analyse <= 64) { 
      
          feuille.getRange ('F3')
                 .setValue ("Vrai"); 
      
        } else { 
      
          feuille.getRange ('F3')
                 .setValue ("Faux");
        }
      };
      

      bonjour, 

      j'ai un soucis avec ma variable analyse car quand je rentre moins de 5 caractères il retourne pas la bonne valeur quand je fais un logger dessus il me dis qu'elle est tout le temps fausse

      merci pour votre aide

      cordialement 

    2. Modérateur
      @lwdu76

      Peux tu expliquer exactement ce que tu veux vérifier avec ta regex ?

      Elle me semble fausse...

      De plus, comme je te l'ai déjà dit, la fonction regex.test retourne un BOOLEEN  .. mais ne te permettra pas de vérifier la taille de ta chaine ( enfin.. si .. mais avec une regex mieux faite )

      Donc :

      Qu'est-ce que tu entres comme valeur... et qu'obtiens tu ? Et que penses tu devoir obtenir ?

      PS: Par exemple, pour tester si une chaine est uniquement un text..  et ayant au minimum 5 caractères et un max de 64, tu pourrais utiliser une regex du genre

      [a-z|A-Z]{5,64}

      .

    3. @jordane45

      bonjour, 

      je voulais savoir je dois faire un format horaire comme 21h00 j'ai ecrit ceci

      var format = /[0-9]{2}\/h\/[0-9]{2}/;
  2. Bonjour,

    J'avais une question je cherche à tester si mes 4 variable a1, ..., a4 ne sont pas fausse 

    Mais je ne sais pas comment faire, j'avais pensé à faire un switch 

    Car mes variables sont définis comme var

    cellule1 = feuille.getRange ('B1´).getValue ();

    Idem jusqu'à

    ​
    
    var cellule4 = ....
    
    ​

    Puis

    analyse1 = format.test (cellule1) ... jusqu'à analyse4 

    Après c'est pour le test de tout les variables analyse1, ... , analyse4 

    1. Modérateur

      Je ne comprend pas ta question...

      De plus, vu qu'il s'agit d'une nouvelle question .. il aurait été bien de cloturer cette discussion puis d'en ouvrir une nouvelle propre à ce "nouveau" problème.