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 :

Bug de la fonction replace ? [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut Bug de la fonction replace ?
    Bonjour à tous,

    J'ai remarqué une erreur concernant la fonction replace de la classe String (ou une erreur de ma part).

    Je vous laisse essayer :

    alert("***".replace(/\*\*\*/g, "$$$")); => Résultat attendu : $$$, Résultat obtenu : $$

    alors que si l'on remplace avec MMM au lieu de $$$, on a bien :

    alert("***".replace(/\*\*\*/, "MMM")); => MMM
    Quelqu'un sait d'où cela peut venir ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Salut,

    attention, replace() utilise les dollars ! Je pense que c’est un viel héritage des shells ou du Perl…

    Quand tu as des captures (en anglais backreferences), tu peux les utiliser comme ceci :
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> 'Annie a des couettes'.replace(/([aeiouy])/gi, '$1$1')
    "AAnniiee aa dees coouueettees"
    Du coup, pour utiliser un dollar littéral, il faut en mettre deux.

    http://www.regular-expressions.info/...t.html#replace

    Allez tiens, un second exemple :
    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> 'AxB'.replace(/x+/gi, "$`$&$'")
    "AAxBB"

    Powerful, n’est-ce pas ?

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut
    Je vois que la discussion en a intéressé plus d'un.

    En tous cas, mon problème résolu, merci à tous !

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

Discussions similaires

  1. bug fonction replace
    Par laurentSc dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 09/01/2012, 19h54
  2. [ODBC] Fonction Replace en ODBC
    Par Alexandre T dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2007, 11h02
  3. Fonction replace
    Par pmboutteau dans le forum ASP
    Réponses: 11
    Dernier message: 10/06/2005, 09h42
  4. PB avec la fonction replace
    Par Techman128 dans le forum C++
    Réponses: 6
    Dernier message: 24/02/2005, 11h39
  5. Fonction replace
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 10/06/2004, 12h18

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