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 autorisant les chiffres et les virgules (ou point) [RegEx]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Regex autorisant les chiffres et les virgules (ou point)
    Bonjour, j'ai un formulaire ou l'utilisateur entre une valeur qui doit être un nombre (qui peut être à virgule).

    Apparemment, pour garder juste les chiffres, la regex toute simple c'est : #\D# , c'est ça ?

    Mais comment fait-on si on veut aussi garder un seul point ET au milieu des chiffres (pas au début ni à la fin).

    J'ai cherché mais sans grand succès.

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Donc si je comprends bien, tu utilises preg_replace

    Vaut mieux utiliser preg_match d'après ton truc. Essai ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $r = '/(\d+(?:[.,]\d+)?)/';
    $s = 'ab3.14';
     
    if (preg_match($r, $s, $m)) echo $m[1];

  3. #3
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci ça marche bien , sauf qu'il accepte les virgules et points au début et à la fin.

    Ex : il accepte 12.3 ou 1,6 ça c'est cool
    Mais il accepte aussi .12 ou encore 25, et ça ça me fait buguer mon appli.

    Des idées ?

  4. #4
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Ok. Si c'est juste pour valider l'input, alors ceci sera mieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $r = '/^\d+[.,]\d+$/';
    if (preg_match($r, $s)) echo 'ok';
    Si c'est pas x.y ou x,y alors ça sera considéré comme faux

  5. #5
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    La c'est mieux mais du coup il ne prend plus les chiffres entiers (1 seul chiffre) comme 1 ou 4.

    arf elle va me tuer la regex

  6. #6
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Ok, j'avais mal compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $r = '/^\d+(?:[.,]\d+)?$/';
    if (preg_match($r, $s)) echo 'ok';
    Mais il accepte aussi .12 ou encore 25, et ça ça me fait buguer mon appli
    C'est pas très clair lol. ok pour les entiers là

  7. #7
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Tout fonctionne !
    Merci beaucoup pour m'avoir accordé de ton temps !

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

Discussions similaires

  1. regex pour ne garder que les chiffres et les ;
    Par webol dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2015, 15h48
  2. Réponses: 2
    Dernier message: 11/12/2008, 14h00
  3. les chiffres derriere la virgule n'apparaissent pas !?
    Par hich24 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 24/02/2008, 19h59
  4. division qui conserve les chiffres après la virgule
    Par ali.ensi dans le forum Débuter
    Réponses: 3
    Dernier message: 05/10/2007, 13h26

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