Sử dụng này:
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
Nếu bạn muốn một cái gì đó trong jQuery:
$("#txt").val().replace(/\${2}(.*?)\${2}/g, "<I>$1</I>");
Markup:
<textarea id="txt">I'm $$Zach$$</textarea>
jsFiddle
Wrap nó trong một hàm để sử dụng tốt nhất:
var italics = function (str) {
return str.replace(/\$\$(.*?)\$\$/g, "<I>$1</I>");
}
italics($("#txt").val());
Có vẻ như bạn muốn thực hiện một cú pháp tương tự như Markdown. Tại sao không chỉ sử dụng trình phân tích cú pháp Markdown cho các trường của bạn thay vì phát minh lại bánh xe?
Showdown JS được tích cực phát triển và bạn nhận được cú pháp Markdown giống như bất kỳ cú pháp markdown nào khác.
Tôi thấy rằng bạn đã sử dụng '' < vv trong ví dụ của bạn. Bạn có muốn sử dụng '<' hoặc '<'? – timss