[PHP] contrôle de saisie - expression régulières

contrôle de saisie - expression régulières [PHP] - PHP - Programmation

Marsh Posté le 03-03-2008 à 11:02:36    

Bonjour,
 
je souhaite faire le contrôle de deux champs de saisie grâce aux expressions régulières :
 
combien de jours par semaine ? soit pas plus de 7 :
/^[0-7]$/ ça marche parfaitement.
 
mais ensuite je ne vois pas trop pour contrôler une série de nombre comprise entre 0 et 52 (nombre de semaines dans l'année).
 
Je m'en remet à vous.
 
Endorsen.
 


---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
Reply

Marsh Posté le 03-03-2008 à 11:02:36   

Reply

Marsh Posté le 03-03-2008 à 11:13:54    

Je te conseillerais plutot de ne pas utiliser d'expressions régulières pour controler ce genre de chose, mais les opérateurs < et >
Ama, il est beacoup plus simpe d'écrire:

Code :
  1. if ( $a >= 0 et $a<=52){


que

Code :
  1. preg_match('/(\d|[1-4]\d|5[0-2])/', $a, $res);

Message cité 1 fois
Message édité par anapajari le 03-03-2008 à 11:14:04

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 03-03-2008 à 11:24:15    

anapajari a écrit :

Je te conseillerais plutot de ne pas utiliser d'expressions régulières pour controler ce genre de chose, mais les opérateurs < et >  
Ama, il est beacoup plus simpe d'écrire:

Code :
  1. if ( $a >= 0 et $a<=52){


que

Code :
  1. preg_match('/(\d|[1-4]\d|5[0-2])/', $a, $res);



+1
spa parce que les expressions régulières sont à la mode qu'il faut en mettre partout ! :o
 
Plus sérieusement, faire un test classique (a>0 && a<=52), en plus d'être plus lisible, c'est plus performant [:kao98]


Message édité par kao98 le 03-03-2008 à 11:25:22

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 03-03-2008 à 14:49:28    

oui je suis complètement d'accord avec vous. Mais dès fois on a pas le choix :o
 
Merci quand même, j'ai fini par trouver en réfléchissant un pwoual.


---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
Reply

Marsh Posté le 03-03-2008 à 14:50:44    

pour les amateurs :
 
saisie compris entre 0 et 52
/(^\d$)|(^[1-4]{1}[0-9]{1}$)|(^[5][0-2]{1}$)/
 
voilà, c'est pas optimisé mais ça marche.


---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
Reply

Marsh Posté le 03-03-2008 à 14:52:54    

Accessoirement, anapajari t'avais proposé une solution à base de regexp qui ressemble à la tienne, mais en plus lisible.
 
Heu, par curiosité, j'aimerais bien savoir ce qui t'oblige à utiliser les expressions régulières dans un cas comme celui-ci, si ce n'est pas indiscret :??:


Message édité par kao98 le 03-03-2008 à 14:54:08

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 03-03-2008 à 15:36:44    

l'argent.


---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
Reply

Marsh Posté le 03-03-2008 à 15:37:22    

heuaheauehauh :)


---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
Reply

Sujets relatifs:

Leave a Replay

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