[Résolu]Regex inférieure à 100

Regex inférieure à 100 [Résolu] - PHP - Programmation

Marsh Posté le 15-05-2008 à 17:31:42    

Bonjours,
Voilà j'ai une léger problème de regex que je n'arrive pas à résoudre.
Il me faudrait contrôler si ma variable ne dépasse pas 100 (c'est un pourcentage).
Je n'arrive que jusqu'à 99 avec ceci :
 

Code :
  1. if (preg_match('#^([0-9]?[0-9])$#', $_POST['activite']))
  2.   { ...


 
J'aimerais savoir s'il est possible de dire ou 100 directement dans le pattern ou une autre solution alors ... ;)  
 
Merci d'avance


Message édité par wifsimster le 18-05-2008 à 21:07:20
Reply

Marsh Posté le 15-05-2008 à 17:31:42   

Reply

Marsh Posté le 15-05-2008 à 17:35:42    

if (intval($_POST['activite']) <= 100)  [:autobot]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-05-2008 à 17:49:09    

sielfried a écrit :

if (intval($_POST['activite']) <= 100)  [:autobot]


+1 [:pingouino]

Citation :

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.”
Now they have two problems.
— Jamie Zawinski


[:jar jar]


Message édité par masklinn le 15-05-2008 à 17:49:25

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-05-2008 à 18:16:04    

#^(100|\d{1,2})$#


[:cupra]


Message édité par anapajari le 15-05-2008 à 18:18:42

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

Marsh Posté le 16-05-2008 à 09:13:23    

Je ne doute pas de votre sielfried et Masklinn qui doit être fonctionnel mais pour garder une certaine propreté dans mon script je préfère garder la solution de anapajari qui me convient très bien  ;)  
Merci à vous tous, @plouche !

Message cité 2 fois
Message édité par wifsimster le 16-05-2008 à 09:14:10
Reply

Marsh Posté le 16-05-2008 à 09:22:18    

wifsimster a écrit :

pour garder une certaine propreté dans mon script je préfère garder la solution de anapajari


C'est une blague?


Message édité par masklinn le 16-05-2008 à 09:22:33

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-05-2008 à 09:38:06    

et nan mais moi je deconnais ... :/
C'est completement con comme solution.


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

Marsh Posté le 16-05-2008 à 10:37:31    

Oui mais elle marche et c'est ce que je cherchais à faire de toute façon et oui je trouve ça plus clair que le reste  :p

Message cité 3 fois
Message édité par wifsimster le 16-05-2008 à 10:37:43
Reply

Marsh Posté le 16-05-2008 à 10:40:58    

wifsimster a écrit :

Oui mais elle marche et c'est ce que je cherchais à faire de toute façon et oui je trouve ça plus clair que le reste  :p


 [:pingpetrus]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-05-2008 à 10:57:30    

wifsimster a écrit :

Oui mais elle marche et c'est ce que je cherchais à faire de toute façon et oui je trouve ça plus clair que le reste  :p


Non pas du tout. Vérifier qu'un entier est inférieur à 100 se fait par une comparaison, surtout pas par une expression régulière.
 
N'oublie pas que les regexp sont les trucs les plus illisibles, et si tu peux faire sans, fait sans.

Reply

Marsh Posté le 16-05-2008 à 10:57:30   

Reply

Marsh Posté le 16-05-2008 à 12:06:11    

wifsimster a écrit :

Oui mais elle marche et c'est ce que je cherchais à faire de toute façon et oui je trouve ça plus clair que le reste  :p


 
lol


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 16-05-2008 à 12:10:55    


Non mais il a raison après tout, un truc qui dit "il faut que ce soit une chaîne de caractères qui corresponde exactement à la chaîne '100' ou bien alors qui soit composée de un à deux caractères décimaux" c'est beaucoup plus clair que "il faut que ce soit un entier inférieur ou égal à 100" [:dawa]

Spoiler :

en plus quand t'es payé au caractère ça en fait pas loin du double [:jar jar]


Message édité par masklinn le 16-05-2008 à 12:11:46

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-05-2008 à 13:02:37    

Je débarque mais ... [:prozac]


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 16-05-2008 à 21:16:50    

wifsimster a écrit :

Je ne doute pas de votre sielfried et Masklinn qui doit être fonctionnel mais pour garder une certaine propreté dans mon script je préfère garder la solution de anapajari qui me convient très bien  ;)  
Merci à vous tous, @plouche !


 
 
Oui mais c'est con ce que tu dis (désolé d'etre aussi sec). J'ai l'impression que si tu sais pas quand il faut les utiliser pour dire ca. Les expressions régulières est quelques chose de puissant mais à éviter tant que l'on peux pour 2 principales raisons :

  • ca bouffe pas mal de ressource
  • c'est difficile maintenanable


Si c'est faire des simples recherches sur une chaine caractère, mieux vaut utiliser les fonctions basiques de php tel strstr et j'en passe
Si c'est un nombre, il faut utiliser les opérateurs *,+,%,- et de comparaisons <,>,=
 
 
Bref dans ton exemple, si ta variables contient un $_POST['activite'], tu fais
- un rtrim pour supprimer le %
- un floatval pour etre sur d'avoir un nombre float
 
floatval(rtrim ($_POST['activite'],'%')) <= 100

Reply

Marsh Posté le 17-05-2008 à 10:48:54    

Ouki, merci !
 
Et l'ensemble de mes posts n'est pas "totozifiant" juste parce que je préfère utiliser une regex au lieu de d'autre contrôles...
C'est juste parce que tout mes contrôles étaient ainsi pour le moment et c'était plus rapide de changer mon expression que tu refaire un contrôle simplement, et j'avoue avoir tort sur ce que j'ai dit sur la propreté de mon code  :sarcastic:  
Faut pas m'en vouloir je ne cherche qu'à apprendre mais certains sont plutôt des obstacles que des aides ici (comme partout), bref merci quand même !


Message édité par wifsimster le 17-05-2008 à 10:55:31
Reply

Marsh Posté le 17-05-2008 à 11:52:09    

On t'en veut parce qu'une expression régulière est à utiliser en dernier recours et toi tu l'utilise pour une test aussi simple ...
 
Non ne dis pas que tu cherche à apprendre, tu en fais qu'a ta tête. Tu veux pas te remettre en question. Si c'est vraiment légitime, dans ce cas donne nous les vrais raisons.

Reply

Marsh Posté le 18-05-2008 à 21:05:22    

Je suis têtu, it's true ;)

Reply

Marsh Posté le 19-05-2008 à 00:40:47    

au moins tu as lu ma réponse et tu l'admets :)
bonne soirée à tous ... (ou plutot bon matin)

Reply

Sujets relatifs:

Leave a Replay

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