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 regulière remplacement de toutes les occurences


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut Expression regulière remplacement de toutes les occurences
    Bonjour a tous

    Voila j'essai de faire un repalceAll de "." par "-" et j ai un message d'erreur
    "Cet objet ne gere pas cette propriété ou cette méthode"

    Si je remplace le replaceall par replace cela marche mais juste pour le premier "." trouvé.

    Voici la ligne que je tape

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rchaine = lchaine.replace(".","-");
    J ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rchaine = lchaine.replace("\\.","-");
    Pas mieux

    Merci de votre aide

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 679
    Par défaut
    normalenent rchaine = lchaine.replaceAll("\\.","-"); devrait fonctionner

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 897
    Billets dans le blog
    54
    Par défaut
    Comme l'indique la documentation de chacune de ces methodes :
    - replace() prend en argument une simple chaine de texte .
    - replaceAll() prend en argument une expression reguliere .
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    et avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rchaine = lchaine.replace("\\[.\\]","-");

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    String.replace(...) prend comme argument des 'char'
    String.replaceAll(...) prend des String comme arguments
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    rchaine = lchaine.replaceAll(".", "-");
    
    ou
    
    rchaine = lchaine.replace('.', '-');
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 679
    Par défaut
    Citation Envoyé par Fench Voir le message
    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rchaine = lchaine.replace("\\[.\\]","-");
    Je comprend pas ce que tu veux faire mais ce truc ne risque pas de marcher.
    On dirait une expression régulière bizarre utilisée dans une replace alors que les expressions régulières fonctionnent avec replaceAll.

    Citation Envoyé par OButterlin Voir le message
    String.replace(...) prend comme argument des 'char'
    String.replaceAll(...) prend des String comme arguments
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    rchaine = lchaine.replaceAll(".", "-");
    
    ou
    
    rchaine = lchaine.replace('.', '-');
    A+
    Non! replaceAll() n'est pas vraiment un replace qui gère les String, mais un replace qui gère les expression régulières.

    D'ailleurs depuis JAVA 1.4, replace() fonctionne avec les CharSequence dont héritent String, StringBuffer et StringBuilder. Donc replace(".","-") devrait fonctionner aussi bien que replace('.','-') et il devraient remplacer tous les caractères, pas que le premier.

    Par contre replaceAll() attend une expression régulière et non pas un simple texte. En expression régulière le point signifie "n'importe quel caractère" donc replaceAll(".","-") remplacerait tous les caractères par des tirets. Si on veut utiliser le point il faut l'échapper avec un antislash dans une expression régulière et donc un double antislash entre les guillemets dans le code.

    Au final replace('.','-') ou replace(".","-") ou replaceAll("\\.","-") devaient tous fonctionner comme tu le souhaites. Si ça ne remplace pas touts les points par des tirets, l'erreur vient probablement d'ailleurs.

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

Discussions similaires

  1. [DEBUTANT] Remplacer toutes les occurences de parenthèses
    Par rambc dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/12/2010, 07h37
  2. Retrouver toutes les occurences dans un memo
    Par johweb dans le forum Delphi
    Réponses: 2
    Dernier message: 09/06/2006, 14h44
  3. connaitre toutes les occurences d'une chaine
    Par semaj_james dans le forum C
    Réponses: 2
    Dernier message: 11/12/2005, 14h46
  4. Borland C++ 5.5 remplacer toutes les occurences
    Par cdelamarre dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 30/11/2005, 12h23
  5. replace() qui s'applique sur toutes les occurences
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2005, 11h27

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