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 :

Problèmes avec les fonctions et replace


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Problèmes avec les fonctions et replace
    Bonsoir,

    Je fais très peu de javascript mais là, je suis arrivé à devoir faire une méthode et je n'arrive à rien :-/

    Mon but est de récupérer un texte, modifier quelques élément et ensuite le réafficher...
    Si je fais ceci, tout fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var message = parent.document.getElementById('msg').innerHTML;
    message = message.replace(/coucou/gi, "Salut");
    parent.document.getElementById('msg').innerHTML = message;
    Tout fonctionne.. Je me dis génial, j'ai plus qu'à créer une fonction qui remplace ce que je souhaite par ce que j'aimerais...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function remplace(mot, remplacement) {
    var message = parent.document.getElementById('msg').innerHTML;
    message = message.replace(/mot/gi, remplacement);
    parent.document.getElementById('msg').innerHTML = message;
    }
    Et là, ben ça marche plus :p

    je pense que c'est à cause du truc replace mais je suis pas sur.. J'aimerais bien vos lumières à ce sujet

    Merci d'avance...

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    passe par une variable intermédiaire (un objet RegExp,en fait) qui interprètera vraiment la variable "mot"; dans le masque que tu utilises, js la comprend comme une chaîne de 3 caractères...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var re=new RegExp(mot,"gi");
    var message2=message.replace(re,"Salut") ;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup javatwister

    Et si maintenant c'est tout un lien que je dois modifier ? J'ai testé un truc mais ça marche pas J'ai essayer d'échaper les slash avec des antislashs mais sans succès non plus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var re = new RegExp('<a href="./plugins/test.php?test=' + mot + '" target="frame" style="color: red; text-decoration: underline; font-weight: bold;">' + mot + '</a>',"gi");
    Si tu avais encore 2 minutes à m'accorder pour corriger ce problème, ce serait super ^

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Petit up innocent

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Personne ? :-/

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Après quelques jours d'absence, quelqu'un aurait une solution ? :-/

  7. #7
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Ben ca ne dois pas changer...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function remplaceLien(le_mot) { remplace("<a ..."+le_mot+"...></a>") }

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Eh ben étrangement dans ce cas, ça ne fonctionne pas :p

    Au lieu de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var re = new RegExp('<a href="./plugins/test.php?test=' + mot + '" target="frame" style="color: red; text-decoration: underline; font-weight: bold;">' + mot + '</a>',"gi");
    Pouvez-vous me dire ce que je dois écrire afin que ça fasse qqch du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var re = new RegExp('<a href=TOUT_CARACTERES>' + mot + '</a>',"gi");
    Ainsi j'aurai peut-être plus de chance pour qu'il fasse ce que je souhaite après ;p

  9. #9
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Le problème, c'est que ta chaine de caractère doit être encodée au format REGEXP (voir tutoriels sur GOOGLE)

    ex :
    --- "." en REGEXP signifie "n'importe quel caractère"
    --- "*" signifie le caractère/groupe précédent peut être présent 0, 1 ou plus d'un fois
    --- ...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Le problème c'est que je suis incapable de faire ça :p

    Ceci serait correct ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var re = new RegExp('^<a href=(.*)' + mot + '</a>$',"gi");

Discussions similaires

  1. probléme avec les fonctions dans jsp
    Par killer_instinct dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 18/02/2007, 21h39
  2. Problème avec les fonctions
    Par gizida dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/07/2006, 14h15
  3. Réponses: 2
    Dernier message: 10/05/2005, 10h58
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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