Recherche un regx
Résolu
Bonjour,
J'aimerai un regex qui me permettrai de remplacer un ' par un \' svp.
Merci beaucoup
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
-
Bonjour,
Quel langage?
Enfin normalement : chaine.replace("'","\'") devrait marcher -
y'a plus simple tu peux utiliser str_replace ()
-
En php je la cherche. chaine.replace c'est pour du JS non ?
-
juste au-dessus de ton post y'a un str_replace ;)
-
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 -
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 -
Pourquoi y'a-t-il des antislash doubles?
-
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)" /> -
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)" /> -
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('''=>'\'')); -
arf en fait le soucis c'est quand on met ça \\, il comprend ça \, donc faudrait mettre :
$text=str_replace("\\\'","\\'",$text); -
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)" /> -
Encore un bon point pour toi NookZ, ca marche nickel :)
Merci beaucoup , je passe le post en résolue.