Bonjour.
Je cherche à développer un éditeur WYSIWYG (What You See Is What You Get) pour que les membres puissent voir l'effet que produit leur texte en direct.
J'ai donc cherché, et trouvé, une fonction qui correspondait bien à ce que je cherche, c'est à dire de la prévisualisation avec du BBCode.
Voici le code en question:
function afficher(texte)
{
var div_prev = document.getElementById('prevision');
var corps = document.getElementById('corps').value;
corps = corps.replace(/\[b\]([\s\S]*?)\[\/b\]/g, '<strong>$1</strong>');
corps = corps.replace(/\[i\]([\s\S]*?)\[\/i\]/g, '<i>$1</i>');
corps = corps.replace(/\[s\]([\s\S]*?)\[\/s\]/g, '<s>$1</s>');
div_prev.innerHTML = corps;
}
Précisons au passage quelques petites choses: "prevision" est l'endroit où va être affichée la prévisualisation et corps est un textarea en HTML.
Les deux éléments sont sur la même page HTML et le code est bien entre des balises script.
Tout s'affiche merveilleusement bien, sauf un petit point noir: Le retour à la ligne.
J'ai essayé et essayé mais je n'ai pas encore réussi à tomber sur le bon code.
Voici un de mes essais (qui ne marche pas):
corps = corps.replace(/ /\n /g, '<br />');
Le but est donc de remplacer tous les \n (retours à la ligne en JS) par des br (retours à la ligne en HTML)
Dans le but que vous arriviez à me dépanner plus facilement, je me permet de vous communiquer l'ensemble du code qui ne joue pas. (pas d'inquiétude, ce n'est pas long

)
<p><textarea name="corps" id="corps" cols="50" rows="10" onkeyup="javascript:afficher(document.getElementById('corps').value);" tabindex="3"></textarea></p>
<fieldset id="prevoir"><legend>Prévisualisation</legend><p id="prevision"></p></fieldset>
<script>
function afficher(texte)
{
var div_prev = document.getElementById('prevision');
var corps = document.getElementById('corps').value;
corps = corps.replace(/\[b\]([\s\S]*?)\[\/b\]/g, '<strong>$1</strong>');
corps = corps.replace(/\[i\]([\s\S]*?)\[\/i\]/g, '<i>$1</i>');
corps = corps.replace(/\[s\]([\s\S]*?)\[\/s\]/g, '<s>$1</s>');
corps = corps.replace(/ \\n /g, '<br />');
div_prev.innerHTML = corps;
}
</script>
Merci d'avance pour toutes les réponses qui pourront m'être utiles. Si vous souhaitez de plus amples informations sur le code, n'hésitez pas à demander

Cordialement,
WebManiaK