Je veux faire quelque chose qui fonctionnerait beaucoup comme ce shortcode dans stackexchange.
Donc, fondamentalement, je veux .wrap()
texte avec des marqueurs distincts et les .wrap()
avec des classes spécifiques en conséquence … tout en supprimant les marqueurs qui existaient auparavant.
J’ai trouvé ce texte entre 2 citations avec jQuery, mais cela ne m’aide pas beaucoup car je ne pouvais que le faire fonctionner tel quel.
Ceci explique un peu plus loin: http://jsfiddle.net/ALfsT/3/
Je ne sais pas où aller avec ça.
Merci @Guffa pour l’aide ici
http://jsfiddle.net/mplungjan/AkCED/
var res = { boldIt:/\*\*(.*?)\*\*/g, underlineIt:/\_\_(.*?)\_\_/g } var txt = $( "#texts" ).html(); $.each(res, function(type, re) { txt = txt.replace( re, '$1' ); }); $( "#texts" ).html(txt);
mettre à jour:
maintenant nous devons coder des choses comme celle-ci http://jsfiddle.net/mplungjan/bhTAM/
Vous avez changé en classe = textes je l’ai changé en id = textes et cela a fonctionné mieux
var res = { boldIt:{re:/\*\*(.*?)\*\*/g,tag:"span"}, underlineIt:{re:/\_\_(.*?)\_\_/g,tag:"span"}, italicIt:{re:/\/\/(.*?)\/\//g,tag:"span"}, titleIt:{re:/\=\=(.*?)\=\=/g,tag:"h1"}, linkIt:{re:/\#\#(.*?)\:(.*?)\#\#/g, tag:"a"}, imageIt:{re:/\"\"(.*?)\:(.*?)\"\"/g, tag:"img"} } var s = $("#texts").html(); $.each(res, function(type, obj) { if(s) s = s.replace(obj.re,'<'+obj.tag+' class="'+type+'" >$1'+obj.tag+'>'); }); $("#texts").html(s);
Vous devez échapper aux caractères *
: / /\*\*(.*?)\*\*/
Je vous suggère également d’utiliser une fonction de rappel pour envelopper votre texte: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Ssortingng/replace