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 :

[Expression Régulière] Suppression virgule


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Thewil
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2006
    Messages : 223
    Points : 86
    Points
    86
    Par défaut [Expression Régulière] Suppression virgule
    Bonjour,

    J'ai un petit soucis. J'ai une chaîne qui peut être de ce type :
    ,,1,2,7,,8,12,9,,
    Et moi je voudrais supprimer toutes les virgules inutiles pour avoir quelque chose de ce genre
    1,2,7,8,12,9
    J'avoue ne pas trop savoir comment faire.
    Si quelqu'un avait une petite idée ça me serait d'une très grande aide.

    Merci

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut remplacer un nombre aléatoire de virgules dans un chaîne
    Salut,

    En supposant qu'on ne sait pas combien de virgules enchaînées il peut y avoir, je n'ai pas pu faire mieux que trois replace consécutifs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>remplacer un nombre aléatoire de virgules dans un chaîne.</title>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      <style type="text/css">
      * {margin:0;padding:0;}
      body {margin:10px;background:#000;color:#ddd;font-size:1em;font-family:Helvetica, Arial, sans-serif;}
      div {width:10em;height:3em;background:#333;}
      </style>
    </head>
    <body>
      <script type="text/javascript">
      <!--
        var s1 = ",,1,2,7,,8,12,9,,";
        var re1 = /,{2,}/g;
        var re2 = /^,/g;
        var re3 = /,$/g;
        var s2 = s1.replace(re1, ",");
        s2 = s2.replace(re2, "");
        s2 = s2.replace(re3, "");
        alert(s2);
      //-->
      </script>
    </body>
    </html>

  3. #3
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    peu etre remplacer /,{2,}/g; par /,+/g

  4. #4
    Membre régulier Avatar de Thewil
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2006
    Messages : 223
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    Salut,

    En supposant qu'on ne sait pas combien de virgules enchaînées il peut y avoir, je n'ai pas pu faire mieux que trois replace consécutifs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>remplacer un nombre aléatoire de virgules dans un chaîne.</title>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      <style type="text/css">
      * {margin:0;padding:0;}
      body {margin:10px;background:#000;color:#ddd;font-size:1em;font-family:Helvetica, Arial, sans-serif;}
      div {width:10em;height:3em;background:#333;}
      </style>
    </head>
    <body>
      <script type="text/javascript">
      <!--
        var s1 = ",,1,2,7,,8,12,9,,";
        var re1 = /,{2,}/g;
        var re2 = /^,/g;
        var re3 = /,$/g;
        var s2 = s1.replace(re1, ",");
        s2 = s2.replace(re2, "");
        s2 = s2.replace(re3, "");
        alert(s2);
      //-->
      </script>
    </body>
    </html>
    J'ai envie de dire parfait En effet on ne peut pas savoir à l'avance combien il y aura de virgule.

    Merci beaucoup

  5. #5
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ou en une seule fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        var s1 = ",,1,2,7,,8,12,9,,";
        var re1 = /^,+|,{2,}|,+$/g;
        var s2 = s1.replace(re1, "");
        alert(s2);

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Ah ben oui, un simple "ou"!

  7. #7
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    ou bien sans le {2,}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      var re1 = /^,+|,,+|,+$/g;

  8. #8
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Sans le {2,} ça fonctionne, par contre avec les "ou" finalement ça ne fonctionne pas. Car il faut remplacer les virgules extérieures par rien et les virgules intérieures par une seule et unique virgule.

  9. #9
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ???
    As tu noté que je remplaçais les occurences par '' ...

    donc une ou plusieurs virgules au debut ou à la fin
    ou 2 ou plus virgules à se suivre

    ainsi il ne laisse que les virgules toutes seules qui ne sont pas au début ni à la fin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        var re1 = /^,+|,{2,}|,+$/g;
        var s2 = s1.replace(re1, "");
    Fonctionne donc

  10. #10
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    as-tu testé?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>remplacer un nombre aléatoire de virgules dans un chaîne.</title>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      <style type="text/css">
      * {margin:0;padding:0;}
      body {margin:10px;background:#000;color:#ddd;font-size:1em;font-family:Helvetica, Arial, sans-serif;}
      div {width:10em;height:3em;background:#333;}
      </style>
    </head>
    <body>
      <script type="text/javascript">
      <!--
        var s1 = ",,1,2,7,,8,12,9,,";
        var re = /^,+|,{2,}|,+$/g;
        var s2 = s1.replace(re, "");
        alert(s2);
      //-->
      </script>
    </body>
    </html>

  11. #11
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    arf :red: oui


    Voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      var s1 = ",,1,2,7,,8,12,9,,";
        var re = /^,+|,+|,+$/g;
        var s2 = s1.split(re).join(',');
        alert(s2);

  12. #12
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Ce qui rejoint la syntaxe de jabbounet. Je disais donc, wouah le "ou" quelle bonne idée!

  13. #13
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    oui mais dasn le cas du split join autant faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      var s1 = ",,1,2,7,,8,12,9,,";
        var re = /,+/g;
        var s2 = s1.split(re).join(',');
        alert(s2);

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

Discussions similaires

  1. [Débutant] Expression régulière : suppression balise
    Par Pitchan dans le forum MATLAB
    Réponses: 8
    Dernier message: 16/11/2012, 15h12
  2. 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
  3. 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
  4. Expressions régulières pour suppression d´espace
    Par Lnmex dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/02/2007, 18h37
  5. Réponses: 2
    Dernier message: 27/02/2007, 09h16

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