Page 1 sur 1
Preg_match
Posté : 18 août 2008, 19:56
par Invité
salut,
Je veux verifier si un nom contient des lettres et chiffres a la fin seulement, j ai mis cette fonction je pense que j ai oublie un signe:
if (!preg_match("#^[a-zA-Z0-9]$#",$nom))
{
$Erreur .='<li>Nom comporte des caracteres insupportables</li>';
}
Posté : 18 août 2008, 20:04
par jojolapine
Bonsoir,
Ce que tu souhaites n'est pas très clair, il faudrait que tu donnes dex exemples représentatif...
Du genre:
_iuhdz67 => OK
i9oiuh_ => Pas Ok
Sinon à priori, je dirais qu'il y a un
^ de trop au début
Un petit lien pour apprendre et tester ses regex:
http://lumadis.be
Posté : 18 août 2008, 22:26
par Invité
abcdef => OK
abcdef123=> OK
abcdef_ => Pas OK
123abcdef => Pas OK
_123abcdef => Pas OK
abcdef123_ => Pas OK
le nom peut contenir des lettres et des chiffres, a force que ca doit commencer par lettres et terminer par lettres ou chiffres
Posté : 18 août 2008, 23:13
par Berzemus
Donc, soit que des lettres, soit des lettres suivis de chiffres ?
Alors, il faut un groupe qui valide des lettres (genre [a-zA-Z]*)
Et un groupe qui valide soit du vide soit des chiffres (du style [0-9]+)
Et ce dernier groupe doit se retrouver à la fin (tandis que le premier.. au début)
C'est environ ça ?
Re: Preg_match
Posté : 18 août 2008, 23:47
par AB
Je veux verifier si un nom contient des lettres et chiffres a la fin seulement, j ai mis cette fonction je pense que j ai oublie un signe:
Oui le pb c'est qu'on ne sait pas très bien si tu veux dire
Je veux verifier si un nom contient (des lettres et chiffres) a la fin seulement
ou
Je veux verifier si un nom contient des lettres et (chiffres a la fin seulement)
Re: Preg_match
Posté : 19 août 2008, 09:18
par jojolapine
Je veux verifier si un nom contient (des lettres et chiffres) a la fin seulement
ou
Je veux verifier si un nom contient des lettres et (chiffres a la fin seulement)
A priori, d'après les exemple qu'il a donné, ça semblerai être la deuxième...
Posté : 19 août 2008, 10:06
par @rthur
Un motif de ce genre, peut être?
[a-z][a-z0-9]*
le premier caractère est forcément une lettre, les suivants sont soit des lettres soit des chiffres (qui peuvent être mélangés comme a12b8)
Posté : 21 août 2008, 01:42
par Invité
Un motif de ce genre, peut être?
[a-z][a-z0-9]*
ca marche pas

le premier caractère est forcément une lettre, les suivants sont soit des lettres soit des chiffres (qui peuvent être mélangés comme a12b8)
Posté : 22 août 2008, 12:13
par mariq28
$string = "Ma Phrase";
$regex = "/^[a-zA-Z0-9]+$/";
if (!preg_match($regex, $login)) {
echo "Erreur";
}
else {
echo "Cette chaine marche"
}
Posté : 22 août 2008, 12:15
par mariq28
$string = "MaPhrase";
$regex = "/^[a-zA-Z][a-zA-Z0-9]+$/";
if (!preg_match($regex, $login)) {
echo "Erreur";
}
else {
echo "Cette chaine marche"
}
Posté : 22 août 2008, 13:18
par jojolapine
Il y a des espaces aussi... tu ne nous avais pas dit...?
Je pense que si tu veux arriver à quelque chose il faut un tant soit peu t'investir dans tes recherches, et nous aider sur tes buts à atteindre, parce que nous on peut rien deviner...