在textarea中转义html实体

时间:2011-04-08 22:00:49

标签: javascript html

我有一个textarea用于注释,在按下链接时加载div的内容,将这些内容放在显示的文本区域中。

一切正常,直到我介绍了一种显示交互点的方法(我在谈论·实体)。这些在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");
}

我像这样输出textarea:

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

我不明白为什么如果我将/&middot;/g替换为/asdf/g,例如,任何asdf都会被替换为正常。

底线:如何让我的textarea显示{*}而不是实际的点?

1 个答案:

答案 0 :(得分:1)

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