PHP TESTER Premier caractère = lettre

Niu -  
okuni Messages postés 1325 Statut Membre -
Bonjour,

Tout est dans le titre je veux tester via un if si le premier caractère d'une variable est une lettre, et fire une action, sinon une autre. Comment tester cette condition?

Merci
Configuration: Windows XP
Firefox 3.0.8

6 réponses

  1. benj
     
    bonsoir,
    tu peux essayer ça mais ça ne prend pas en compte les accents...

    
    <?php
    
    if (preg_match('^#[a-z]#',strtolower($variable))){
        //si ça commence par une lettre
    }
    else {
        //si ca commence par autre chose
    }
    
    
    ?>
    
    
    2
  2. benj
     
    ta regex n'est pas bonne

    modifie la comme ca : preg_match('#^[0-9]#',$variable)

    j'avais fais une faute de frappe dans la première, ^ ce met après #

    désolé
    0
  3. Donahu Messages postés 10 Statut Membre 35
     
    if (preg_match("#^[0-9]{1}$#i", $nom)) {}
    else {}

    Le ^ en dehors d'une classe [] signifie "qui débute par".
    Le $ en dehors d'une classe [] signifie "qui finit par".
    L'accolade a droite de la classe donne la fréquence d'apparition (ici 1 et rien d'autre).
    Le i en dehors de la Regex signifie "insensible à la casse".
    0
  4. WibiMaster
     
    D'ici à ce que quelqu'un retombe sur ce sujet depuis Google, comme moi.. :

    if($nom != '' && preg_match('#^[0-9]#', $nom)){
    // Ici $nom n'est pas vide et commence par un chiffre
    }else{
    // Ici soit $nom est vide, soit il ne commence pas par un chiffre
    }

    La flemme de compter et d'expliquer toutes les erreurs de la syntaxe proposé par Niu...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dream666 Messages postés 735 Date d'inscription   Statut Membre Dernière intervention   104
     
    ne connaisant pas les expression regulière j'ai fait comme ça:

    $var = "1 test";

    if (is_numeric($var[0]))
    {
    echo "<b style='color:#0f0;';>c'est un nombre</b>";
    }else
    {
    echo "<b style='color:#f00;';>c'est une lettre</b>";
    }
    0
  7. Niu
     
    Bon il faut en fait que je test si le premier caractère est un chiffre dsl :)

    J'ai donc fait ca

    if(!$nom=="" AND preg_match('^#[0-9]#^',strtolower($nom)))

    Mais sans résultat une idée ?
    -1
    1. okuni Messages postés 1325 Statut Membre 126
       
      le ^ n'a rien a faire devant le #.
      renseigne toi sur les regex, en plus c'est hyper puissant ;)
      #^[0-9]{1}#

      si ce masque est trouvé, cela voudra dire que le premier caractère de la chaine sera un chiffre.
      0