expression regulieres

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 : expression regulieres

par Cyrano » 27 juil. 2005, 09:40

Ben tu pourrais pousser plus loin : commencer par supprimer toutes les lettres et caractères qui ne sont pas des chiffres dans la chaîne envoyée: un preg_replace (ou ereg_replace) peut très bien faire ça (preg_replace avec une expression PCRE ou ereg_replace avec une expression POSIX).

Ensuite tu valide ce qui reste toujours avec une expression régulière : ereg() ou preg_match().

re

par manu49 » 27 juil. 2005, 09:25

ok merci beaucoup,
ca marche très bien j'aurais aimé avoir la solution si il y en a une avec l'expresson régulière , si personne ne sait je cloturerais ce sujet
encore merci

par guilt92 » 26 juil. 2005, 15:42

Ca dépend, par exemple le test d avant est chargé de vérifier le "bon format de la chaine". Tu peux par exemple crée une variable $bon_format que tu mets d abord a false puis tu fais :

Si la chaine n est pas vide tu testes le format. Si il est bon $bon_format=true;
Si le format est bon ou que la chaine est vide ca passe.
Sinon ca casse.

re

par manu49 » 26 juil. 2005, 15:16

oui je veux dire que la chaine peut etre vide mais pour allier ce test avec le precedent si on fait ou ($chaine==""), dasn le if cela est contradictoire avec le test d'avant non??
J'ai essayé et ca n'a pas l'air de marcher

par guilt92 » 26 juil. 2005, 15:01

tu veux savoir si la chaine est vide ?
Pour moi tu peux tester en faisant if($chaine==""), non ?

re

par manu49 » 26 juil. 2005, 14:57

desole de vous redemandez quelque precision
mais je souhaite que l'utilisateur rentre un numero ou rien
habituellment on place un ? a la fin de l'expression mais la je ne vois pas comment faire et mes tentatives sont vaines
merci

par Cyrano » 26 juil. 2005, 13:58

le point est un caractère réservé dans les expressions POSIX ; dont pour avoir le point dans une chaîne, il faut l'échapper avec un backslashe : \.

re [résolu]

par manu49 » 26 juil. 2005, 13:58

ah ok ok c'est bon je viens de lire quelque chose
merci beaucoup

Re: re

par mere-teresa » 26 juil. 2005, 13:58

ca marche impeccable

re

par manu49 » 26 juil. 2005, 13:56

merci beaucoup
mais que veux dire "les points ne sont pas échappés???
sinon merci ca marche impeccable

par Cyrano » 26 juil. 2005, 13:51

Regarde bien ce que j'ai mis : !ereg au lieu de ereg

Re: re

par guilt92 » 26 juil. 2005, 13:49

de faire plusieurs case je ne trouve aps cela judicieux car je dois recupérer ce numéro pour le mettre dasn une base de donnée donc si je dois remplir quatre champs: galere
merci
tu peux tout a fait "regrouper" les 4 champs avant de les inscrire dans la base et ainsi ne faire qu'un seul champ.
Mais bon si la solution ne te convient pas tant pis...

re

par manu49 » 26 juil. 2005, 13:47

en fait le message renvoyé est celui que je met:
le numero n'est pas correct
donc le code est valide mais il n'est pas correct car quand je rentre un numero correct il m'affiche quand meme cela donc l'expression doit etre fausse ou bien autre chose

pour l'idée de faire plusieurs case je ne trouve aps cela judicieux car je dois recupérer ce numéro pour le mettre dasn une base de donnée donc si je dois remplir quatre champs: galere
merci

par Cyrano » 26 juil. 2005, 13:44

Les points ne sont pas échappés et donc remplacent n'importe quel caractères. propositionde corrigé:
if (!ereg("^([0-9]{2,2}\.){4,4}([0-9]{2,2})$", $cava['numerodetel']))
{
    $message .= "Le numéro de téléphone n'est pas correct le format est --.--.--.--.--.-- "
    . " non-alphabétiques : "
    . "<BR>";
}

par guilt92 » 26 juil. 2005, 13:38

désolé cela n'est pas une réponse mais :

Ne serait il pas plus simple et plus fiable lors de la saisie de son numéro de téléphone de faire 5 champs de saisie de deux caractères (un champ de saisie par numéro) plutot qu'ils doivent lui même mettre des "." ?