Verifier une plage de caractere.

[Résolu]
Signaler
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
-
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
-
Bonsoir,

j'aimerais savoir comment on fait pour vérifier qu'une variable ne contient que des caracteres compris entre : [a-Z] [0-9] [,](c'est à dire : miniscule, majuscule et chiffre et virgule) ?

Merci

ZogStriP
IA pour : Incomplet de l'Ancéphale %-6
http://blog.developpeur.org/zogstrip/
8-) www.rubikscubor.fr.st 8-)

#define ThatTheQuestion ((bb) || !(bb))

7 réponses

Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
1
Tu n'as qu'à rajouter les caractètes qu'il te faut entre les 2 crochets :

[:alnum:] -> Caractères alphanumérique (alphabet en majuscules/minuscules + chiffres)

[:blank:]-> espace et tabulation
, -> les virgules
: -> les 2 points
- -> le tiret

Il me semble (à vérifier) que le tiret doit se mettre en début de liste (après le 1er [ ) pour que ça marche.

Voila j'espère que ca ira.

?-) Grrrrrrrrrrr ?-)
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
1
Utilise les expressions régulières :

[code]
/*$chaine est la chaine à tester, elle ne peut commencer ni se terminer par un espace*/
if(ereg("^[[:alnum:]]([[:alnum:][:blank:]])*[[:alnum:]]$",$chaine)) echo"OK";

/*La chaine peut commencer ou finir par un espace*/

if(ereg("^(([[:alnum:][:blank:]])*)$",$chaine)) echo"OK";

?-) Grrrrrrrrrrr ?-)
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
1
Ooops j'avais pas vu que tu voulais la virgule aussi (et j'ai foiré ma balise)
Donc ca donne :


/*$chaine est la chaine à tester, elle ne peut commencer ni se terminer par un espace*/
if(ereg("^[[:alnum:]]([[:alnum:][:blank:],])*[[:alnum:]]$",$chaine)) echo"OK";

/*La chaine peut commencer ou finir par un espace*/

if(ereg("^(([[:alnum:][:blank:],])*)$",$chaine)) echo"OK";



?-) Grrrrrrrrrrr ?-)
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
1
En fait je me suis mal exprimer lors de ma question :

Je voulais dire par [a-Z] que la chaine pouvait contenir n'importeS quelleS lettreS de l'alphabet en minuscule ou majuscule...
par [0-9] que cette MEME chaine pouvait aussi contenir des chiffres !
par [, -:] qu'elle pouvait contenir des : virgules, espaces, tiret,deux points !

Voilà !

PS : Merci quand même !

ZogStriP
IA pour : Incomplet de l'Ancéphale %-6
http://blog.developpeur.org/zogstrip/
8-) www.rubikscubor.fr.st 8-)

#define ThatTheQuestion ((bb) || !(bb))
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
1
J'aimerais savoir quel est le "tag" pour seulement les nombres ?

[:num:] <=> ne fonctionne pas....

ZogStriP
IA pour : Incomplet de l'Ancéphale %-6
http://blog.developpeur.org/zogstrip/
8-) www.rubikscubor.fr.st 8-)

#define ThatTheQuestion ((bb) || !(bb))
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
1
Pour les nombres uniquement utilise [:digit:] ou [0-9]

?-) Grrrrrrrrrrr ?-)
Messages postés
164
Date d'inscription
dimanche 16 novembre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2005
1
Merci

ZogStriP
IA pour : Incomplet de l'Ancéphale %-6
http://blog.developpeur.org/zogstrip/
8-) www.rubikscubor.fr.st 8-)

#define ThatTheQuestion ((bb) || !(bb))