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
A voir également:

6 réponses

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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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