[Perl]Valider le format d'une chaine de caractères

Valider le format d'une chaine de caractères [Perl] - Perl - Programmation

Marsh Posté le 13-08-2003 à 14:32:28    

J'ai une chaine et je dois valider qu'elle a un format alpha-numérique(a-z,A-Z,0-9), de 1 à 8 caractères
 
j'ai un vieux truc sous les yeux qui permet de valider le format d'une date
 
/^\d{4}\-\d{2}\-\d{2}$/
 
alors jme dis que ca doit être dans la meme ligne, sauf faut remplacer le d par l'équivalent d'alphanumérique, et voir si jpeux vérifier la longueur du tout en meme temps

Reply

Marsh Posté le 13-08-2003 à 14:32:28   

Reply

Marsh Posté le 13-08-2003 à 14:40:36    

tiens ça doit marcher ça:

Code :
  1. /(\w{1,8})(\W|$)/

Reply

Marsh Posté le 13-08-2003 à 14:41:19    

Anapajari a écrit :

tiens ça doit marcher ça:

Code :
  1. /(\w{1,8})(\W|$)/




 
jvais tester, merci

Reply

Marsh Posté le 13-08-2003 à 14:43:45    

humm j'ai ptêt été un peu rapide parce que ça doit valider des chaines qui te plaisent pas si le dernier caractère n'est pas bon comme par exemple abcdefgh@.  
Remplace toute la deuxieme parenthèse juste par $ ( a condition bien sur que tu soir sur que ta chaine se termine la.

Reply

Marsh Posté le 13-08-2003 à 14:45:07    

hum mon truc doit pas accepter les caractères comme ceux ci
 
_
-
les accents...
 
seulement a-z, A-Z, 0-9

Reply

Marsh Posté le 13-08-2003 à 14:51:03    

$auteur !~ m|^(\w{1,8})$|

Reply

Marsh Posté le 13-08-2003 à 14:52:13    

jviens de trouver ce truc que jvais tenter
 
/^[0-9a-zA-Z]*$/
 
ensuite me restera plus qua tester la longueur

Reply

Marsh Posté le 13-08-2003 à 14:53:35    

Nico5779 a écrit :

$auteur !~ m|^(\w{1,8})$|


 
je test

Reply

Marsh Posté le 13-08-2003 à 14:53:53    

mon truc fait tout d'un coup ni accent et verifie la longueur

Reply

Marsh Posté le 13-08-2003 à 14:54:35    

Nico5779 a écrit :

$auteur !~ m|^(\w{1,8})$|


 
ca semble malheureusement accepter les underscore

Reply

Marsh Posté le 13-08-2003 à 14:54:35   

Reply

Marsh Posté le 13-08-2003 à 14:56:26    

le probleme c'est que si on a la chaine:
aaaa_bbbb
Bien elle vérifie les conditions car on y trouve deux  series de lettres ( aaaa & bbbb) conforme au motif avec une longueur compris entre 1 et 8.
Je sais pas exactement pourquoi tu en as besoin mais je le ferais dans l'autre sens, je testerais qu'il n'y a que des caractères que je veux dans la chaine. Puis ensuite je vérifierais la longueur, ça donne quelque chose comme ça:

Code :
  1. if ( ($tachaine !~ /(\W|_)/) && (length($tachaine)<8) )
  2. {
  3. ... traitement ...
  4. }


 
[edit]
Nico5779 \w comprends le _ et il en veut pas.
[/edit]


Message édité par anapajari le 13-08-2003 à 14:57:48
Reply

Marsh Posté le 13-08-2003 à 14:57:26    

Code :
  1. !~ /^[0-9a-zA-Z]{1,8}$/

 
 
ca ca semble le faire

Reply

Marsh Posté le 13-08-2003 à 14:58:31    

en gros c un cgi pour la création de fileset sur notre serveur de fichier
 
malheureusement, manque de validation, et DFS(notre systeme de fichier) a pas l'air d'apprécier autre chose que les lettres et les chiffres
 
donc jdois envoyer un message d'erreur si ya quoi que ce soit d'autre

Reply

Marsh Posté le 13-08-2003 à 14:59:44    

Nico5779 a écrit :

Code :
  1. !~ /^[0-9a-zA-Z]{1,8}$/

 
 
ca ca semble le faire


 
ouais, c ca jvais prendre
 
merci beaucoup à tous

Reply

Marsh Posté le 13-08-2003 à 15:18:14    

vi c'est mieux ... c'est marrant comme je me suis compliqué la vie après ... enfin comme disais l'autre "there is more than ..."

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed