[regexp] \n en <br /> sauf dans un <pre>
Bonjour,
J'essaye désespérément d'écrire cette regexp qui fait l'équivalent de nl2br en php soit transformer les retours à la ligne \n en <br />, alors ok c'est facile, d'ailleurs même c'est fait : (trouvé sur le net)
Code:
1 2 3 4 5 6
|
nl2br: function (str) {
var br = '<br />';
return str.replace(/([^>]?)\n/g, '$1' + br + '\n'); |
Mais la particularité sur laquelle j'essaye d'intervenir c'est :
si les retour à la ligne sont à l'intérieur d'un <pre></pre> je souhaiterai ne pas appliquer la fonction et la ben j'y arrive pas
la logique que j'applique :
remplacer les \n dans un <pre> en ##n##
appliquer nl2br
puis rétablir ##n## en \n
mais pas moyen de capturer ces fameux \n
Code:
str = str.replace(/<pre>((\n)*([^<\/pre>|\n ]*)(\n)*)*<\/pre>/g, '<pre>1:$1 2:$2 3:$3 4:$4 5:$5</pre>');
Quelqu'un qui serai à l'aise avec les regexp pourrai peut être me venir en aide ?
Merci