Partage
  • Partager sur Facebook
  • Partager sur Twitter

je cherche une function

pour savoir si la chaîne est des lettres

    2 septembre 2006 à 2:11:59

    Bonjours,
    c'est asser simple, je cherche une funciton qui me permette de savoir si la chaine est composé uniquement de lettre. Et bon, si possible une autre pour savoir si la chaîne est composé uniquement de chiffre.

    Merci de votre aide!
    • Partager sur Facebook
    • Partager sur Twitter
      2 septembre 2006 à 2:17:29

      Je ne sais pas si c'est ce qu'il y a de mieux, mais peut-être:
      <?php
      $lettre = preg_match('`^[[:alpha:]]+$`', $tachaine);
      //et
      $chiffre = preg_match('`^[[:digit:]]+$`', $tachaine);
      ?>
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        2 septembre 2006 à 2:17:37

        Utilise les Regex une fonction comme :
        function uniquement_lettre($chaine)
        {
                if(preg_match("![A-Za-z]*!", $chaine))
                        return true;
                else
                        return false;
        }

        Et pour juste les chiffres :
        function uniquement_chiffre($chaine)
        {
                if(preg_match("![0-9]*!", $chaine))
                        return true;
                else
                        return false;
        }

        Voilà ;)
        • Partager sur Facebook
        • Partager sur Twitter
          2 septembre 2006 à 2:19:39

          Citation : Bilbax

          Utilise les Regex une fonction comme :

          function uniquement_lettre($chaine)
          {
                  if(preg_match("![A-Za-z]*!", $chaine))
                          return true;
                  else
                          return false;
          }


          Et pour juste les chiffres :

          function uniquement_chiffre($chaine)
          {
                  if(preg_match("![0-9]*!", $chaine))
                          return true;
                  else
                          return false;
          }


          Voilà ;)


          Euh, je crains que ça ne soit pas tout à fait correct...
          Il me semble qu'à partir du moment où il y aura une lettre dans la chaîne, ta première fonction retournera toujours vrai (et respectivement avec un chiffre et la seconde fonction)...
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            2 septembre 2006 à 2:22:58

            Citation : Tithugues

            Euh, je crains que ça ne soit pas tout à fait correct...
            Il me semble qu'à partir du moment où il y aura une lettre dans la chaîne, ta première fonction retournera toujours vrai (et respectivement avec un chiffre et la seconde fonction)...


            Ha oui j'avais pas pensé à ca ^^
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              2 septembre 2006 à 2:54:03

              function uniquement_lettre($chaine)
              {
                     return preg_match("!^([A-Za-z]+)$!", $chaine);
              }
              function uniquement_chiffre($chaine)
              {
                     return preg_match("!^([0-9]+)$!", $chaine);
              }


              c'est plus court :p
              • Partager sur Facebook
              • Partager sur Twitter
                2 septembre 2006 à 3:25:52

                Citation : jérémie

                return preg_match("!^([A-Za-z]+)$!", $chaine);



                Tu ne prends pas en compte les accents, là.

                Pour les nombres, c'est simple : is_numeric() (Teste si une chaîne est un nombre entier ou flottant ou si c'est une chaîne numérique (C'est à dire composée de chiffres, d'un signe + ou -, ou d'un . pour les décimaux).

                Par contre, il n'existe pas de fonction pré-définie pour tester si une chaîne ne contient que des lettres. Donc là il faut regarder du côté des Regex (En tenant compte des accents et éventuellement des caractères spéciaux, selon ce que tu veux faire).
                • Partager sur Facebook
                • Partager sur Twitter
                  2 septembre 2006 à 3:34:03

                  Je sais que is_numeric() renvoie vrai si je teste $teste = 1;
                  Mais ça marche aussi avec $teste = '1'; ?

                  edit: ah oui, j'ai testé, ça marche :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 septembre 2006 à 8:43:42

                    // Chaine uniquement composée de nombres entiers
                    ctype_digit();
                    // Chaine uniquement composée de lettres
                    ctype_alpha();
                    // Chaine uniquement composée de lettre et nombres entiers
                    ctype_alnum();
                    // Chaine uniquement composée de lettres minuscules
                    ctype_lower();
                    // Chaine uniquement composée de lettres majuscules
                    ctype_upper();
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      2 septembre 2006 à 9:49:20

                      Merci dentuk :)
                      Ca fait peur toutes ces horreur regex inutile.
                      Les ctype_, c'est de d'la bonne :D
                      Il y aussi is_string() en plus de ctype_alpha ( mais is_string() n'est pas assez restrictive dans ce cas )

                      Citation

                      Par contre, il n'existe pas de fonction pré-définie pour tester si une chaîne ne contient que des lettres. Donc là il faut regarder du côté des Regex (En tenant compte des accents et éventuellement des caractères spéciaux, selon ce que tu veux faire).



                      Avant de dire des choses pareille, il faudrait penser à regarder la DOC :p
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 septembre 2006 à 9:54:34

                        Faudrait demander à Mateo de prévenir dans son cours que les regex sont lentes et ne résolvent pas tout les problèmes parce que là, c'est abusé ...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 septembre 2006 à 17:24:51

                          C'est vrai, j'ai hésité à ajouter un "Je crois qu'" :D

                          J'aurais dû ^^
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            2 septembre 2006 à 17:41:20

                            Il faudrait plutôt créer un tuto qui présente toutes les fonctions de test de contenu et de type d'une variable ! Je pense que je vais le faire :)
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              2 septembre 2006 à 17:47:58

                              Un tuto pour présenter une 20aine de fonction?
                              Ca va être très court.
                              Autant faire un lien vers les ctype :p
                              • Partager sur Facebook
                              • Partager sur Twitter

                              je cherche une function

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown