ereg

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ereg

par zeus » 11 mai 2005, 15:22

Je viens de passer un an avec un prof dingue d'ER et il m'a filer des tas de tuyaux !!!

par lamk » 11 mai 2005, 15:17

wowoooo 8)
eh ben un grand MERCI !!!
:lol:

par zeus » 11 mai 2005, 14:39

Si tu veux trouver tout seul, il faut que tu te pose la question suivante : comment est formé un nombre décimal ?

réponse : une suite de 1à n chiffre, un point (ou une virgule, ou les deux, c'est toi qui voit) et une suite de 1à n chiffres

L'ER s'écrit bien quand tu te pose cette question :
ereg("^([0-9]+)(,[0-9]+)?$", $_POST['masse'])
A savoir que si tu veut limiter le nombre de chiffre après la virgule, tu peut donner une fenetre de taille à la place du "+". Exemple : ([0-9]{1,4}) va accpeter tt les décimaux ayant entre 1 et a chiffres après la virgule.

Le fait d'avoir mis la "," dans la seconde parenthèse et d'avoir mis un "?" après cette parenthèse permet d'accpeter les entiers ET les décimaux. en effet, l'ER va tester la validité des chiffres se trouvant après la virgule seulement si la virgule est présente. LE "?" attend 0 ou 1 fois la suite de caractère "," et 1à n caractères

Cette ER va accepter :
-les entiers : 1 à n chiffres sans virgule
-les décimaux : 1 à n chiffres + virgule + suite de caractères

mais va refuser :
-les entiers finissant par "," (84,)
-les décimaux commencant par "," (,48)


Voili voilu !!!

par lamk » 11 mai 2005, 14:31

merci zeus!! c'est nickel comme explication.
au fait s'il y a des décimales, je dois rajouter quoi ? :oops:

par zeus » 11 mai 2005, 13:51

C'est normal, ton expression régulière ne teste que le premier caractère !!!

remplace ton ER par celle-ci (qui teste de 1à n caractères) et tu verras que le monde s'éclaire :
ereg("^[0-9]+$", $_POST['masse'])
La traduction littérale de l'ER est : cherche une suite de 1 à n caractères numérique. le "^" sigifie que cette chaine doit se trouver au début de la variable, et le "$" signifie qu'elle doit se trouver à la fin !!! Autrement dit, la variable doit être un entier. Le [0-9] signifie qu'on cherche un caractère numérique et le "+" placé juste après signifie que on cherche de 1 à n de ces caractères

par dandy » 11 mai 2005, 13:44

ereg

par lamk » 11 mai 2005, 12:19

bonjour all,
après des recherches infructueuses sur la toile pour le fonctionnement d'ereg, je vais vous demander un petit coup d'pouce :p
qqun aurait-il un lien ou une explication claire à me donner svp ?

je veux juste faire un contrôle de saisie sur un champ texte qui ne doit contenir qu'une valeur numérique, entières ou décimales.
mais le problème c'est qu'il ne contrôle que le premier caractère..
(par exemple si je mets 2a, ça passe :/)
if($_POST['masse']!=NULL && !ereg("^[0-9]", $_POST['masse'])){echo "Masse invalide.";}