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