在javascript中打印html标签

Sag*_*kar 3 html javascript printing tags

谢谢阅读!

var data = "<html><head><title>Hello</title></head><body>Hello Body</body></html>";
Run Code Online (Sandbox Code Playgroud)

我想打印data包括HTML标签,而不需要浏览器呈现HTML标签,只显示"Hello Body".

我试过了:

str = str.replace("<", "");

但是徒劳无功

Mat*_*eer 11

 data = data.replace(/</g, "&lt;").replace(/>/g, "&gt;");
Run Code Online (Sandbox Code Playgroud)

当浏览器遇到&lt;(它被称为字符实体)时,它将用文字"<"替换它,使您能够在页面上显示HTML标记而不进行渲染.

/</g是一个正则表达式,只是说"匹配字符串中的所有'<',并且g意味着全局地执行它.没有g它只会取代它遇到的第一个'<'.

最后要注意的是,使用jQuery这样的库要好得多.这是一种很容易出错的东西,并且错过了边缘情况.让经过强化,经过良好测试和安全的库函数为您完成.


Chr*_*ian 9

实际(和更安全的修复)如下:

function htmlspecialchars(text){
    return jQuery('<div/>').text(text).html();
}
Run Code Online (Sandbox Code Playgroud)

在纯JavaScript中,那将是:

function htmlspecialchars(text){
    var tnd=document.createTextNode(text);
    var div=document.createElement("DIV");
    div.appendChild(tnd);
    return div.innerHTML;
}
Run Code Online (Sandbox Code Playgroud)