Recherche un regx

Résolu
nyeri Messages postés 49 Statut Membre -  
NookZ Messages postés 2376 Statut Membre -
Bonjour,

J'aimerai un regex qui me permettrai de remplacer un ' par un \' svp.

Merci beaucoup
Configuration: Windows XP
Firefox 3.0.10

13 réponses

  1. NookZ Messages postés 2376 Statut Membre 514
     
    Bonjour,

    Quel langage?
    Enfin normalement : chaine.replace("'","\'") devrait marcher
    0
  2. babou54
     
    y'a plus simple tu peux utiliser str_replace ()
    0
  3. nyeri Messages postés 49 Statut Membre
     
    En php je la cherche. chaine.replace c'est pour du JS non ?
    0
  4. NookZ Messages postés 2376 Statut Membre 514
     
    juste au-dessus de ton post y'a un str_replace ;)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nyeri Messages postés 49 Statut Membre
     
    Oui le problème est que j'ai deja testé.

    En faite je récupère un text de type bbcode dans une base de donnée puis je le convertit en HTML à l'aide d'une fonction parse_bbcode(). Puis j'envoie ce texte dans une fonction JS qui affichera le texte dans une fenetre de type JS. J'ai un souci lorsque je rentre des ', j'ai une erreur et impossible d'ouvrir la fenetre JS.

    fonction pr transformer mon bbcode

    $text=bbcode($texte);

    Appel de ma fonction JS

    onclick="creer_fenetre(400,400,500,500,'<?php echo $titre; ?>','<?php echo $text; ?>','<?php echo $lien; ?>','<?php echo $fichier; ?>','<?php echo $j; ?>',event)" />

    J'ai toujours l'erreur du type : missing ) after argument list
    0
    1. NookZ Messages postés 2376 Statut Membre 514
       
      votre solution me semble pourtant bien adaptée.Avez-vous des " dans votre $text, si oui c'est normal que ça échoue, il faut également les remplacés
      0
  7. nyeri Messages postés 49 Statut Membre
     
    Non voila ce que j'ai :

    $text=bbcode($texte);
    $text=str_replace("'","\'",$text);

    Sa affiche : En route ! mes s\'amis

    A l'aide de firebug j'obtient sa :

    <input type="image" title="lecture"value="Fenetre" src="../template/theme/img/lecture.png" onclick="creer_fenetre(400,400,500,500,'La chaise','<div class=\\'centrebb\\'><span class=\\'tgros\\'><span class=\\'rouge\\'>La chaise</span></span></div><div class=\\'justifie\\'><span class=\\'tgros\\'>En route ! mes s\'amis</span></div><br/><br/><br/><br/><br/><br/> ','../../../france/europe/upload/florent.delaire/La chaise/','printOUT3505.pdf','1',event)" />

    A priori c'est le ' de mes s'amis qui fait planter
    0
  8. NookZ Messages postés 2376 Statut Membre 514
     
    Pourquoi y'a-t-il des antislash doubles?
    0
  9. nyeri Messages postés 49 Statut Membre
     
    Du fait que je fait $text=str_replace("'","\'",$text);

    Sinon j'obtient sa sant le $text=str_replace("'","\'",$text);

    <input type="image" title="lecture"value="Fenetre" src="../template/theme/img/lecture.png" onclick="creer_fenetre(400,400,500,500,'La chaise','<div class=\'centrebb\'><span class=\'tgros\'><span class=\'rouge\'>La chaise</span></span></div><div class=\'justifie\'><span class=\'tgros\'>En route ! mes s'amis</span></div><br/><br/><br/><br/><br/><br/> ','../../../france/europe/upload/florent.delaire/La chaise/','printOUT3505.pdf','1',event)" />
    0
    1. NookZ Messages postés 2376 Statut Membre 514
       
      peut-être en faisant :
      $text=str_replace("'","\'",$text);
      $text=str_replace("\\'","\'",$text);
      0
  10. nyeri Messages postés 49 Statut Membre
     
    J'obtient toujours avec les deux str_replace que tu m'as donnée. Je comprend pas pourquoi $text=str_replace("\\'","\'",$text); n'a pas l'air de fonctionner :

    <input type="image" title="lecture"value="Fenetre" src="../template/theme/img/lecture.png" onclick="creer_fenetre(400,400,500,500,'La chaise','<div class=\\'centrebb\\'><span class=\\'tgros\\'><span class=\\'rouge\\'>La chaise</span></span></div><div class=\\'justifie\\'><span class=\\'tgros\\'>En route ! mes s\'amis</span></div><br/><br/><br/><br/><br/><br/> ','../../../france/europe/upload/florent.delaire/La chaise/','printOUT3505.pdf','1',event)" />
    0
  11. nyeri Messages postés 49 Statut Membre
     
    Je te donne une partie de mon parse_bbcode peut etre sa pourra t'aider :

    $text = preg_replace("#\<email=(.+)\>(.+)\</email\>#isU","<a href=\'mailto:$1\'>$2</a>",$text);
    $text = preg_replace("#\<lien=(.+)\>(.+)\</lien\>#isU","<a href=\'$1\'>$2</a>",$text);
    $text = preg_replace("#\<image\>(.+)\</image\>#isU","<img src=\'$1\' alt=\'image poster par utilisateur\' style=\'width:40%; height:30%;\' />",$text);
    $text = preg_replace("#\<citation=(.+)\>(.+)\</citation\>#isU","<span class=\'citation\'>Citation :$1</span><div class=\'citation2\'>$2</div>",$text);
    $text = preg_replace("#\<barre\>(.+)\</barre\>#isU","<span class=\'barre\'>$1</span>",$text);
    $text = preg_replace("#\<italique\>(.+)\</italique\>#isU","<span class=\'italique\'>$1</span>",$text);
    $text = preg_replace("#\<gras\>(.+)\</gras\>#isU","<span class=\'gras\'>$1</span>",$text);
    $text = preg_replace("#\<souligne\>(.+)\</souligne\>#isU","<span class=\'souligne\'>$1</span>",$text);
    $text = preg_replace("#\<couleur=(.+)\>(.+)\<\/couleur\>#isU","<span class=\'$1\'>$2</span>",$text);
    $text = preg_replace("#\<position=(.+)\>(.+)\</position\>#isU","<div class=\'$1\'>$2</div>",$text);
    $text = preg_replace("#\<taille=(.+)\>(.+)\</taille\>#isU","<span class=\'$1\'>$2</span>",$text);
    $text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","<span class=\'$1\'>$2</span>",$text);
    $text = preg_replace ("#(\r|\n|\r\n)#isU","<br/>", $text);
    $text = strtr($text,array('''=>'\''));
    0
  12. NookZ Messages postés 2376 Statut Membre 514
     
    arf en fait le soucis c'est quand on met ça \\, il comprend ça \, donc faudrait mettre :
    $text=str_replace("\\\'","\\'",$text);
    0
  13. nyeri Messages postés 49 Statut Membre
     
    Héhé sa fonctionne pour les \\ mais sa enlève celui sur mon texte :

    <input type="image" title="lecture"value="Fenetre" src="../template/theme/img/lecture.png" onclick="creer_fenetre(400,400,500,500,'La chaise','<div class=\'centrebb\'><span class=\'tgros\'><span class=\'rouge\'>La chaise</span></span></div><div class=\'justifie\'><span class=\'tgros\'>En route ! mes s'amis</span></div><br/><br/><br/><br/><br/><br/> ','../../../france/europe/upload/florent.delaire/La chaise/','printOUT3505.pdf','1',event)" />
    0
    1. NookZ Messages postés 2376 Statut Membre 514
       
      Ah ben ça c'est bizarre :s
      pourtant c'était pas un \\' :s:s
      suis-je bête -_-
      $text=str_replace("\\\\'","\\'",$text);
      0
  14. nyeri Messages postés 49 Statut Membre
     
    Encore un bon point pour toi NookZ, ca marche nickel :)

    Merci beaucoup , je passe le post en résolue.
    0
    1. NookZ Messages postés 2376 Statut Membre 514
       
      Parfait, si y'a un autre soucis, tu sais où me trouver
      0