Użyj tego:
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
Jeśli chciałeś coś w jQuery:
$("#txt").val().replace(/\${2}(.*?)\${2}/g, "<I>$1</I>");
Markup:
<textarea id="txt">I'm $$Zach$$</textarea>
jsFiddle
owinąć go w funkcji dla najlepszego wykorzystania:
var italics = function (str) {
return str.replace(/\$\$(.*?)\$\$/g, "<I>$1</I>");
}
italics($("#txt").val());
Wydaje się chcesz, aby składni podobnej do promocji cenowych. Dlaczego po prostu nie użyjecie parsera Markdown dla swoich pól, zamiast odkrywać nowe koło?
Showdown JS jest aktywnie rozwijany i uzyskuje się tę samą składnię Markdown, jak w przypadku każdej innej składni markdown.
widzę, że użyłeś '' < etc w swoim przykładzie. Czy chcesz użyć '<' lub '<'? – timss