PHP TESTER Premier caractère = lettre [Fermé]

Signaler
-
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
-
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

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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é
Messages postés
8
Date d'inscription
jeudi 17 juin 2010
Statut
Membre
Dernière intervention
7 octobre 2011
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".
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...
Messages postés
735
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
24 février 2014
101
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>";
}
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 ?
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
125
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.