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 :

Expression régulière (chiffres et virgule)


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Points : 49
    Points
    49
    Par défaut Expression régulière (chiffres et virgule)
    Bonjour
    Je souhaiterai autoriser dans mon tableau, que les chiffres entiers ou à virgule. mais interdire tous les autres caractères.

    7
    777
    777,77
    7777,777

    mais interdire le reste

    après recherche, je suis arrivé à :
    ^[0-9]*,?[0-9]+$

    Par exemple, je peux mettre autre chose que la virgule en délimiteur, ou des lettres ...
    la virgule est rendu optionnelle ou pouvoir accepter les entiers

    Un petit coup de main serait la bienvenue.
    merci

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Qu'est ce qui ne va pas ?

    Ta regex semble fonctionnelle pour tester les cas que tu as exposé.
    Je ne comprend pas ce que tu veux de plus ?
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  3. #3
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Si j'ai bien compris tu a la regex et ne sait pas quoi en faire.

    Perso j’utilise du javascript pour vérifier de manière dynamique les inputs de mes user.

    Si c'est ce que tu cherche je veux bien te mettre une petit exemple
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  4. #4
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Pour l'utiliser en php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    if(preg_match('#^[0-9]*,?[0-9]+$#', $texte)){
         echo 'ok';
    }
    En javascript :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(/^[0-9]*,?[0-9]+$/.test(document.getElementById('id_champ').value)){
         alert('ok');
    }
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  5. #5
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    j'avais plus tôt en tète un truc comme sa:

    dans le heat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /*Fonction qui ne permettra que la saisie de chiffres dans un input*/
    function chiffres(objInput){
       var reg = /^[0-9]*$/;
     
       if(!reg.test(objInput.value)){
          objInput.value = objInput.value.substring(0,objInput.value.length-1);
       }
    }
    et dans le champ a interdire tout sauf les chiffres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onkeyup="chiffres(this)" onkeydown="chiffres(this)"
    comme sa si un user utilise autre chose que les chiffres c'est de suite supprime et voila ^^
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    je l'utilise dans un tableau, comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    		if ($data[0]=="A")
    			{	
    				if ($data[1]=="B" 
    				&& (preg_match('/^[0-9]*,?[0-9]+$/',$data[2]))
    par contre, je peux mettre sans problème dans mon data2, d'autres caractères ou même des lettres

  7. #7
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Citation Envoyé par Atori Voir le message
    je l'utilise dans un tableau, comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    		if ($data[0]=="A")
    			{	
    				if ($data[1]=="B" 
    				&& (preg_match('/^[0-9]*,?[0-9]+$/',$data[2]))
    par contre, je peux mettre sans problème dans mon data2, d'autres caractères ou même des lettres
    J'ai du mal comprendre ton soucis. J’étais parti sur un formulaire lol Sorry
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  8. #8
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Soit un plus plus recis sur ce que tu veux please.

    Comment est remplis ton tableau? user? script?
    A quoi doit il servir?
    Que veut tu obtenir exactement et ce qui marche pas.
    Un petit bout de code incriminé n'est pas de refus non plus lol
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    en fait, j'importe un fichier csv avec un fgetcsv()
    et je fais des contrôles sur chaque champ de mon fichier.

    sur ma data[2], je souhaite vérifier qu'il n'y a que des chiffres entiers ou à virgule, rien d'autre.

    par exemple, dans le fichier, si je met 7.7, ça passe
    ou si je met (en data2) n77.77, ça passe aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (($handle = fopen("c:\test.txt", "r")) !== FALSE) 
    {
        while (($data = fgetcsv($handle, 100, ";")) !== FALSE) 
    	{
     
    		if ($data[0]=="A")
    			{	
    				if ($data[1]=="B" 
    				&& (preg_match('/^[0-9]*,?[0-9]+$/',$data[2]))

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    En fait, je pense que le problème venait d'ailleurs, mais pas de ce bout de code là
    je test mais normalement, c'est bon.

    En tout cas, merci de votre aide

  11. #11
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( $data[1]=="B" && ( preg_match('/^[0-9]*,?[0-9]+$/',$data[2])==1 ) )
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

Discussions similaires

  1. Expressions régulière : Quand la virgule s'en mêle
    Par Mokuhiken dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2012, 12h01
  2. java.util.regex Class Pattern: expression régulières chiffres romains
    Par bipbipman2003 dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 10/06/2011, 15h24
  3. Réponses: 1
    Dernier message: 09/05/2010, 22h53
  4. [Expression Régulière] Suppression virgule
    Par Thewil dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 30/07/2009, 16h36
  5. Expression régulière chiffres et virgules
    Par johweb dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/06/2008, 21h51

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