IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Interdire certains caractères variables [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 45
    Par défaut Interdire certains caractères variables
    Bonjour,

    voilà dans un formulaire lors de la vérification des données, je souhaiterais interdire les virgules, les espaces, les points et tous les caractères autres que les chiffres.

    Hors, je n'ai trouvé que cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !ereg("[0-9]", $_POST['nombre'])
    Mais évidement les caractères divers sont autorisés... Comment faire ?


    Dans le cas où une fonction dans ce genre n'existerais pas, je souhaiterais alors supprimer les virgules, les espaces, les points et tous les autres caractères qui se trouveraient derrière la variable nombre, avec pourquoi pas str_replace par exemple.

    Exemple : 01234;5 6 devrait devenir 01234 et dès qu'un caractère spéciaux (ou une virgule, espace, point) apparait on supprime ce caractère et tout ce qui suit derrière, pour ne garder que le chiffre rond présent avant ce caractère spéciaux.

    Est-ce envisageable ?


    Merci. Cordialement,

  2. #2
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Par défaut
    Caractères divers? Ce que tu as écrit là n'autorisera qu'un seul chiffre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    !ereg("^[0-9]+$", $var)
    autorisera plusieurs chiffres uniquement.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 45
    Par défaut
    euh non le !ereg("[0-9]", $_POST['nombre']) autorise une chaine de caractère contenant des chiffres de 0 à 9 si je ne me trompe pas et d'après les tests.

    Par contre, les caractères spéciaux et divers (genre point, point virgule, virgule, etc... tout le reste) est aussi autorisé alors que je ne souhaite qu'un nombre rond, sans autre chose que des chiffres dans le formulaire.

    Je ne sais pas si c'est plus compréhensible ? mais je n'ai pas trouvé la solution malheureusement...

    il existe des ereg avec alphanum et digitalnum mais impossible de faire marcher pour avoir un nombre sans autres caractères, une solution ?

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par k2006 Voir le message
    euh non le !ereg("[0-9]", $_POST['nombre']) autorise une chaine de caractère contenant des chiffres de 0 à 9 si je ne me trompe pas et d'après les tests.

    Par contre, les caractères spéciaux et divers (genre point, point virgule, virgule, etc... tout le reste) est aussi autorisé alors que je ne souhaite qu'un nombre rond, sans autre chose que des chiffres dans le formulaire.

    Je ne sais pas si c'est plus compréhensible ? mais je n'ai pas trouvé la solution malheureusement...
    Attention, si tu lis bien Jayrôme, tu verras qu'il te donne une solution plus précise.

    Ton pattern vérifie juste la présence d'un chiffre dans la ligne
    Le pattern donné plus haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = "/^[0-9]+$/";
    vérifie que la ligne entière n'est composée que de chiffres (et au moins un).

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 45
    Par défaut
    ok d'accord merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interdire certains caractères dans un champ
    Par sardaucar dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/06/2014, 10h17
  2. interdire certains caractères spéciaux
    Par Taga1 dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2010, 12h12
  3. [PHP 5.0] Interdire certains caractère dans un formulaire html
    Par Santcho dans le forum Langage
    Réponses: 3
    Dernier message: 20/07/2010, 16h15
  4. Problème avec certains caractéres dans variable
    Par Off$ide dans le forum Langage
    Réponses: 14
    Dernier message: 13/12/2005, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo