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 + caractères spéciaux ?


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut Replace + caractères spéciaux ?
    Bonjour,

    je cherche à remplacer dans une chaîne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return overlib('<a href=\'#\'>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return overlib('<a href=\'mon nouveau lien\'>
    Mais ce \'#\' me complique la tâche…


    Bien sûr je pourrais mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_mouseover = new_mouseover.replace('#',new_link);
    Ça fonctionne bien. Mais si le texte du mouseover parle musique, de dièses et de bémols, je vais être mal…


    J'ai essayé de passer par les caractères unicodes avec ce code inabouti :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_mouseover.replace("\u005C\u0027\u0023\u005C\u0027","\'"+ new_link +"\'");
    Comment faire ?

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    Par défaut
    agis sur href, sans regexp;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monlien.href="cequetuveux";

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 486
    Billets dans le blog
    1
    Par défaut
    Et si le lien (<a...>) n'a pas d'id, "monlien" n'existera pas ; il faudra donc ruser, à mon avis, avec document.getElementsByName

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    Effectivement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_mouseover.href = new_link;
    ne fonctionne pas…

    J'ai un id mais c'est un peu compliqué parce qu'il y a 2 href différents... Sauf erreur document.getElementsByName ne devrait pas mieux aller...
    Suivant le résultat d'une détection javascript, je remplace à la volée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="mon lien 1" title="" id="promo" onmouseover="return overlib('<a href=\'#\'> plus toute une <b>Rubrique à brac</b> etc...
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" title="" id="promo" onmouseover="return overlib('<a href=\'mon lien 1 modifié\'> plus toute une <b>Rubrique à brac</b> de texte qui s'affiche ensuite…etc…</a>')"
    Autant travailler la chaîne non ?

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    heu ...
    je ne vois pas a quel niveau se trouve le blocage ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine="return overlib('<a href=\'#\'>"
    alert(chaine.replace("\'#\'","\'mon nouveau lien\'"))
    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 éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    Ben chez moi avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert (new_mouseover.replace("\'#\'","\'"+ new_link +"\'"));
    ça ne fonctionne pas : la chaîne new_mouseover garde son \'#\'

  7. #7
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    new_mouseover="return overlib('<a href=\'#\'>"
    new_link="\'mon nouveau lien\'"
    alert (new_mouseover.replace("\'#\'","\'"+ new_link +"\'"));
    tu testes sur quel navigateur ? quelle version ?
    quel charset ?
    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 !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    Dernière version de Safari Mac et iPhone à jour aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_mouseover = new_mouseover.replace("#",new_link);
    fonctionne parfaitement mais pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_mouseover = new_mouseover.replace("\'#\'","\'"+ new_link +"\'");

  9. #9
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    A mon avis le souci est en amont
    tu rédiges ton code js avec du php de l'asp ou du jsp ?
    Tu dois rajouter une couche d'échappement pour les \

    Il serait intéressant de voir le code html généré ...
    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 !

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    J'ai bien pensé (mais après coup…) à générer ça en PHP, mais là j'ai fait une bête page html avec sa fonction javascript qui réécrit les liens en fonction d'une détection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript">
    <!--
    	function change_liens() { 	
    		if (mobile == true){
    Le code généré (sans que le replace ait fonctionné) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return overlib('<a href=\'#\'>Toute ma description affichée</a>')
    Le \'#\' n'est pas détecté par le replace…

  11. #11
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Je ne parle pas de faire le replace en php,
    je parle du moment ou php rediges le code
    pour que php redige un \ js il faut le doubler \\

    Autre reflexion: ce que tu nous montre et du code js, pas du string ...
    Tu veux dire que tu essaye de modifier le code d'une fonction ?
    Quand et comment fais tu le replace ???
    replace fonctionne sur du texte, pas du code js
    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 !

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    je parle du moment ou php rediges le code
    pour que php redige un \ js il faut le doubler \\

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_mouseover = new_mouseover.replace("\\'#\\'","\\'"+ new_link +"\\'");
    fonctionne impec. Merci
    Je n'ai pourtant rien en PHP là-dedans…

    Citation Envoyé par SpaceFrog Voir le message
    Tu veux dire que tu essaye de modifier le code d'une fonction ?
    Quand et comment fais tu le replace ???
    replace fonctionne sur du texte, pas du code js
    Oui je modifie le code qui sera passé à une fonction
    Je la lance ci :i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onLoad="change_liens();">

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

Discussions similaires

  1. string.replace et caractères spéciaux
    Par fitiwizz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/03/2009, 11h03
  2. replace + caractères spéciaux
    Par Choupinou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 16h00
  3. caractéres spéciaux, fonction split, replace
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/10/2005, 23h40
  4. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

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