PHP TESTER Premier caractère = lettre

Fermé
Niu - 5 avril 2009 à 02:56
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 10 juin 2011 à 18:01
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

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
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 8 Date d'inscription jeudi 17 juin 2010 Statut Membre Dernière intervention 7 octobre 2011 35
Modifié par Donahu le 26/10/2010 à 09:15
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
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 mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
10 juin 2011 à 16:42
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
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 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
10 juin 2011 à 18:01
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