2017-05-01 25 views
2

我正在進行實時預覽,我必須替換某些字符。當我輸入*text*時,應該用html:<span class="txt-bold">text</span>替換它。以相同的字符結尾,其他替換

我的代碼的第一部分似乎是成功的,但我不知道如何修改REGEX,以便它正確地用SPAN的結束標記替換第二個星號。

這可能聽起來很愚蠢,但在我的研究中,我找不到解決方案。

textarea_content = textarea_content.replace(/\*/g, '<span class="txt-bold">').replace(/\[\/*\]/g, '</span>'); 
+0

需要注意的是一無所知,這是什麼做的jQuery的。我已經改變了標題並重新標記了問題。 –

回答

2

你的問題是,第一正則表達式將替換所有*實例與開口<span>標籤,所以第二replace()調用將不會匹配任何內容。

更好的解決方案是使用一個正則表達式來匹配一個組,然後用它來做替換。試試這個:

var foo = 'some dummy *text*'; 
 
var bar = foo.replace(/\*(.+)\*/g, '<span class="txt-bold">$1</span>'); 
 

 
console.log(bar);

+0

是的,這是一個更好的解決方案。謝謝。這確實解決了這個問題。 – Synthiatic

相關問題