2011-04-08 54 views
0

我有一個textarea用於評論,當鏈接被按下時加載div的內容,把這些內容放在顯示的textarea中。在textarea中轉義html實體

一切工作正常,直到我介紹了一種方式來顯示interpoints(我在談論·實體)。這些在div中顯示得很好,但問題是它們也顯示爲實際textarea中的點,這是我不想要的。我希望它們在textarea中顯示爲{*},因爲這是在服務器端轉換爲·的字符串。

這是我用來處理標籤的顯示功能:

function HtmlDecode(str) 
{ 
    var ta = document.createElement("textarea"); 
    ta.innerHTML = str.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/&middot;/g, "{*}"); 
    toReturn = ta.value; 
    ta = null; 

    return toReturn.replace(/<br\s*\/?>/mg, "\n"); 
} 

I輸出像這樣的textarea:

anotherDiv.innerHTML = '<textarea ...>' + HtmlDecode(div.innerHTML) + '</textarea>'; 

我不明白是爲什麼,如果我改變例如,/&middot;/g替換爲/asdf/g,任何asdf都將被替換得很好。

底線:如何讓我的textarea顯示{*}而不是實際的中間點?

+1

該符號被稱爲[interpunct](http://en.wikipedia.org/wiki/Interpunct):P – Ernesto 2011-04-08 22:25:39

回答

1

.replace(/·/g, "{*}")而不是.replace(/&middot;/g, "{*}");

+0

同樣的事情,沒有替換髮生。 – IVlad 2011-04-08 22:36:16

+0

你可以發佈參數str的樣子嗎? – Ernesto 2011-04-08 22:47:57

+0

div.innerHTML ='2&middot; 5 = 10 asdf'(這是數據庫中的內容,也顯示在視圖 - >源文件中) – IVlad 2011-04-08 22:50:44