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 :

Regex pour les entiers [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut Regex pour les entiers
    bonsoir,

    Je voudrais tester un champ qui doit être un entier.

    Donc pour cela j'utilise une expression régulière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $res = array('12.3', '12 3', '12,3');
    for ($i = 0; $i < 2; $i++) {
            echo preg_match('/\d+/i', $res[$i]);
    }
    Tous ces résultats sont valides alors que je demande seulement des entiers.

    Si quelqu'un peu m'aider, s'il vous plait !!!!!!

  2. #2
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    J'ai trouvé !!!!

    J'ai mal construit la REGEX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    preg_match('/\d{+}/i', $res[$i])
    Il me manquait les accolades.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Non c'est parce qu'elle n'est pas ancrée de sorte à signifier que la chaîne ne doit être composée que de chiffres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach (array('12.3', '12 3', '12,3') as $v) {
            printf('%s : %s', $v, preg_match('/^\d+$/', $v) ? 'ok' : 'ko');
    }
    Dès lors la simple présence d'un seul chiffre suffisait à valider le motif (les autres, quels qu'ils soient, étant ignorés, en quelque sorte).

    Une autre façon de l'écrire aurait été l'inverse (s'il y a au moins un caractère qui n'est pas un chiffre alors ce n'est pas bon) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach (array('12.3', '12 3', '12,3') as $v) {
            printf('%s : %s', $v, preg_match('/[^\d]/', $v) ? 'ko' : 'ok');
    }

  4. #4
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Merci

    J'ai rectifié mon erreur la sa fonctionne pour tous les cas

    Merci encore pour ces précisions

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

Discussions similaires

  1. [RegEx] Souci des regex pour les puces donc erreurs W3C
    Par retour dans le forum Langage
    Réponses: 10
    Dernier message: 04/10/2008, 15h09
  2. [RegEx] REGEX pour les balises a
    Par temperature dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2008, 14h56
  3. Espace disque alloué pour les entiers
    Par stos dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 30/10/2006, 14h17
  4. [RegEx] Regex pour les accents et autres
    Par yule dans le forum Langage
    Réponses: 4
    Dernier message: 21/08/2006, 15h47
  5. FormatFloat pour les entiers !?
    Par Lung dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2003, 15h20

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