Utilizzare questa:
str.replace(/\${2}(.*?)\${2}/g, "<I>$1</I>");
\${2} matches two $ characters
(.*?) matches your string to be wrapped
\${2} same as above
/g matches globally
jsFiddle
Se si voleva qualcosa in jQuery:
$("#txt").val().replace(/\${2}(.*?)\${2}/g, "<I>$1</I>");
Markup:
<textarea id="txt">I'm $$Zach$$</textarea>
jsFiddle
avvolgerla in una funzione per il miglior uso:
var italics = function (str) {
return str.replace(/\$\$(.*?)\$\$/g, "<I>$1</I>");
}
italics($("#txt").val());
Sembra come si vuole fare una sintassi simile a Markdown. Perché non usare solo un parser Markdown per i tuoi campi invece di reinventare la ruota?
Showdown JS è attivamente sviluppato e si ottiene la stessa sintassi Markdown come con qualsiasi altra sintassi Markdown.
vedo che hai utilizzato '' < ecc nel tuo esempio. Vuoi usare '<' o '<'? – timss