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

jQuery Discussion :

Regex en jquery (supprimer les caractères détectés plusieurs fois)


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Bulgarie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Par défaut Regex en jquery (supprimer les caractères détectés plusieurs fois)
    Salut Tous

    je désespere de parvenir à écrire une regex qui supprime les caracteres présents plusieurs fois dans un string.

    exemple :

    str = "abcabcd";

    devrait devenir :

    "abcd"

    J'ai trouvé la regex suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string.replace(/[^\w\s]|(.)(?=\1)/gi, "")
    Mais hélas ça ne supprime que les doublons qui se suivent ( "aabbcc" devient "abc" mais "abcabcd" reste "abcabcd" )

    Cordialement

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    C'est presque ça, en fait l'expression que tu recherches est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mystr = mystr.replace(/(.)(?=.*?\1)/g, '');
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mystr = mystr.replace(/([\s\S])(?=[\s\S]*?\1)/g, '');
    si tu veux prendre en charge les nouvelles lignes.


    Mais attention car si ta chaîne de départ est un peu longue, cette méthode montre très vite ses limites car la complexité est élevée. Dans ce cas tu peux utiliser cette solution de rechange:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var characters = [];
    for (i=mystr.length-1; i>-1; i--) {
      characters[mystr[i]]=1;
    }
    var mystr = Object.keys(characters).join('');

  3. #3
    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
    en passant par un objet ^^
    http://jsfiddle.net/v88s9mcy/1/

    Ou pour éviter la double boucle
    http://jsfiddle.net/v88s9mcy/4/
    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 !

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Bulgarie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Par défaut
    merci !

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

Discussions similaires

  1. [PL/SQL] Supprimer les caractères non numériques
    Par Oliveuh dans le forum PL/SQL
    Réponses: 6
    Dernier message: 25/06/2015, 12h13
  2. [Regex] Supprimer les caractères spéciaux
    Par Jaynes dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 02/05/2011, 17h27
  3. Supprimer les caractères blancs en fin de ligne
    Par st20085 dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 06/09/2006, 22h51
  4. Réponses: 12
    Dernier message: 04/09/2006, 17h59
  5. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 11h11

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