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 :

replace qui ne remplace qu'une occurrence


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut replace qui ne remplace qu'une occurrence
    Salut !

    Quelqu'un saurait me dire pourquoi cette instruction ne remplace pas toutes les occurrences de "red", "green" et "blue" ? On dirait que lorsqu'une occurrence en suit une autre elle n'est pas remplacée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var subject = "red black green blue yellow orange red blue pink orange white green";
    var pattern = /(?:^|[^\w])(red|green|blue)(?:[^\w]|$)/g;
    var result = subject.replace(pattern, "%");
    J'aimerais tant que possible éviter d'avoir à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var result = null;
    var replacement = subject;
    do {
        result = replacement;
        replacement = result.replace(pattern, "%");
    }
    while(result != replacement);

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var pattern = /(^|\s+)(red|green|blue)(\s+|$)/g;

  3. #3
    Membre éclairé
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var pattern = /(^|[^\w]*?)(red|green|blue)([^\w]*?|$)/g;

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    bon là elle marche, arf je suis nul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var pattern = /(^|\s*)(red|green|blue)(\s*|$)/g;
    pas besoin d'avoir une longue regexp

  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 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
    un mot peut être suivi de ponctuation ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pattern=/\b(red|green|blue)\b/g
    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 !

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut
    Merci pour toutes vos réponses !

    Par contre je ne suis pas vraiment plus éclairé sur ma question : "pourquoi"...

Discussions similaires

  1. Replace qui ne remplace pas :s
    Par ced600 dans le forum C#
    Réponses: 4
    Dernier message: 28/03/2008, 14h18
  2. le body.replace qui remplace pas
    Par zooffy dans le forum ASP.NET
    Réponses: 16
    Dernier message: 18/01/2008, 13h57
  3. Replace - remplacement dans une chaine
    Par petiteso dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/06/2007, 11h14
  4. Réponses: 5
    Dernier message: 12/11/2006, 15h47
  5. String.replace qui ne remplace rien
    Par linar009 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/08/2006, 11h04

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