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

JavaScript Discussion :

soucis de regex


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Par d�faut soucis de regex
    plop � tous !

    voici mon probl�me :
    j'ai des chaines de caract�res de ce style :
    ram�ne 1.416.818 unit�(s) d�acier, 589.864 unit�(s) de silicium et 513 unit�(s) de deut�ride
    dans lesquelles je veux r�cup�rer uniquement les nombres. Alors j'avoue que je sais pas vraiment (voir pas du tout) comment faire donc j'ai pens� � faire une regex mais je sais pas trop comment la construire...
    le probl�me principal c'est qu'� partir du moment o� il y a un point, il y a forc�ment 3 chiffres derri�re mais d�j�, on n'est pas oblig�s d'avoir de point et ensuite, il peut y en avoir plusieurs comme montr� dans mon exemple.
    donc dans ma regex il faut que je traduise :
    le fait que j'ai 1 ou 3 chiffres au d�but
    [0-9]{1,3}
    le fait que j'ai un . ou pas et le fait que j'ai encore 3 chiffres
    et que ce point et ces chiffres peuvent y �tre 0 ou n fois et c'est l� que je coince !
    donc j'ai pens� � des trucs style
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    [0-9]{1,3}[\.]?[\.0-9{3}]*
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    [0-9]{1,3}[[\.]?[0-9]{3}]*
    mais comme vous vous en doutez, rien de tout �a ne fonctionne ^^ selon les regex, �a m'extrait bien mes nombres mais si je fais quelque chose du style 1.1..4444.123, �a me les extrait aussi donc y'a un soucis ^^
    voilou, si vous avez des id�es, j'suis ouvert -_-'

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    oul� faut pas se compliquer la vie comme �a !
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type='text/javascript'>
    var chaine="ramène 1.416.818 unité(s) d´acier, 589.864 unité(s) de silicium et 513 unité(s) de deutéride "
    var reg=/(\d+\.?)+/g;
    var result=chaine.match(reg);
    msg="les chiffres extraits sont:\n"
    for (i=0;i<result.length;i++){
    msg+=result[i]+"\n"
    }
    alert(msg);            
    </script>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Par d�faut
    ben c'est s�r qu'avec une regex toute simple, �a fonctionne mais bon, si la personne s'amuse � mettre 1..4440 ben elle fonctionne plus
    y'a aucun moyen de v�rif �a par regex � part en faisant un truc mega barbare comme j'ai fait ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var exp = new RegExp("[\\d]{1,3}[\.]?[\\d]{3}[\.]?[\\d]{3}[\.]?[\\d]{3}|[\\d]{1,3}[\.]?[\\d]{3}[\.]?[\\d]{3}|[\\d]{1,3}[\.]?[\\d]{3}|[\\d]{1,3}", "g");
    car �a, �a fonctionne tr�s bien mais qu'est-ce que c'est moche !!! s'il existe des trucs vraiment simple, pardonnez mon ignorance mais je connais les regex que depuis ce matin :/

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    ben rajoute la conditon un seul point ! .

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    var chaine="ramène 1.416.818 unité(s) d´acier, 589.864 unité(s) de silicium et 513 unité(s) de deutéride "
    var reg=/(\d+(\.{1})?)+[^\.$]/g;
    var result=chaine.match(reg);
    msg="les chiffres extraits sont:\n"
    for (i=0;i<result.length;i++){
    msg+=result[i]+"\n"
    }
    alert(msg);
    et eventuellement ne se terminant pas par un point
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Par d�faut
    ah ben voil� !! j'ai cherch� un moment comment ou pouvait mettre deux conditions � la suite ! MERCI !
    le (\d+(\.{1})?) me sauve ! du coup, j'ai le droit de faire �a ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    (\d{1,3}(\.{1})?(\d{3})*)
    pour bien pr�ciser que si on a un point il faut obligatoirement 3 chiffres derri�re

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    oui bien sur masi �a limite � des groupes de 3 s�par�s par des .
    sasn premdre en compte le fait que tu peux avoir 333. tu n'exclue pas le cas du point � la fin

    tout depend de ce que tu cherches � recup�rer
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Par d�faut
    ok ok
    merci beaucoup pour ces �clairages �a m'aide vraiment bien m�me si bien s�r je ne pense pas avoir tout compris aux regex pour le moment, j'ai en tout cas mieux compris ! c'est vraiment incroyablement puissant comme "fonction"
    encore merci =)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 05/03/2010, 16h58
  2. Souci de Regex
    Par ApocalypseDuck dans le forum Langage
    R�ponses: 5
    Dernier message: 10/04/2009, 16h45
  3. [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
  4. Soucis avec regex.replace
    Par elric47 dans le forum ASP
    R�ponses: 1
    Dernier message: 29/04/2008, 23h33
  5. [REGEX] Souci de regex
    Par LE NEINDRE dans le forum Langage
    R�ponses: 5
    Dernier message: 27/02/2006, 09h01

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