Trouvez des marqueurs spéciaux en séquence et faites quelque chose avec le texte entre les deux

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'); }); $("#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