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 numerique pour format anglais [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Regex numerique pour format anglais
    Bonjour,

    j'aimerais vérifier une valeur numérique via une Regex, j'ai réussi à trouver ceci : /^\d+(?:[.,]\d+)?$/
    Ce qui fonctionne plutôt bien mais mon problème est que mes nombres sont structurés à l'anglaise
    exemple : 1,000,000.00

    Donc voila, cette Regex ne me permet pas de valider des nombres avec des virgules comme séparateur
    et je me permet donc de puiser dans votre savoir, sachant que je n'y connais absolument rien aux Expressions Régulières

    Je vous remercie d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La fonction is_numeric() ne te convient pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^(\d+[,\.]{0,1})+\d*$/
    Normalement, ça devrait fonctionner .

    EDIT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\d{1,3}(,\d{3})*(\.\d)*$
    Celle-ci me semble un peu mieux, elle vérifie que ton nombre est bien formaté, donc pas possible de:
    1,000000000,000,00,0.0000
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Bonjour, merci pour vos réponses,

    En faite, avant d'utiliser cette Expression reg coté serveur, je voulais l'utiliser coter client avec html5 et l'attribut pattern :
    ex : pattern="/^(\d+[,\.]{0,1})+\d*$/"

    malheureusement cela ne fonctionne pas ni avec la première ni avec la deuxième Expression que tu me propose

  5. #5
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    C'est à dire que ça ne fonctionne pas? . Faudrait un peu plus d'informations pour que je puisse te dire ce qui va pas .
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Et bien quand je mettre ceci : 1,500,000.00 dans mon input avec en pattern une de tes regex, il me ressort "Format Invalide"

  7. #7
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    C'est normal, la bonne expression est ^\d{1,3}(,\d{3})*\.\d*$.

    Si tu veux interdire le point tout seul à la fin tu peux utiliser: ^\d{1,3}(,\d{3})*(\.\d+)?$
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Ça a l'air de fonctionner .
    Merci beaucoup.

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

Discussions similaires

  1. [11gR1] Une regex pour formater une chaine de caractères
    Par akkyshan dans le forum PL/SQL
    Réponses: 6
    Dernier message: 11/02/2014, 17h27
  2. [RegExp] regex pour formater ipv6
    Par ____22 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/05/2011, 22h16
  3. regex pour format A1A
    Par jeepibmx dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/03/2009, 15h47
  4. affichage date() format anglais
    Par nazimb dans le forum ASP
    Réponses: 10
    Dernier message: 14/10/2004, 14h08
  5. [langage] cherche script pour formater une chaine
    Par MASSAKA dans le forum Langage
    Réponses: 7
    Dernier message: 12/11/2003, 12h18

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