Javascript用实际字符替换HTML char代码

Mit*_*ran 3 html javascript regex character-encoding

我有一个HTML输入文本,其值从相关的div填充.我的问题是div包含的字符&将正确地显示为'&'div中的符号,但是当复制到文本框时,文本'&'将被显示为dispalyed

我怎么能转换&amp;&'&lt;''<','&nbsp;'' '???

Bal*_*usC 5

因此,你要反转义 HTML实体.使用普通JS,您可以使用此代码段:

function unescapeHTML(html) {
    var div = document.createElement("DIV");
    div.innerHTML = html;
    return ("innerText" in div) ? div.innerText : div.textContent; // IE | FF
}
Run Code Online (Sandbox Code Playgroud)

并使用jQuery以下内容:

function unescapeHTML(html) {
    return $("<div />").html(html).text();
}
Run Code Online (Sandbox Code Playgroud)

但是,您也可以在将div的内容"复制"到input元素值的步骤中解决此问题.而不是抓取HTML,只需抓取文本.而不是element.innerHTML,那将是element.innerTextIE或element.textContent真正的浏览器.

不,你不能也不应该用正则表达式(可靠地)做到这一点.