我可以在JavaScript中转义HTML特殊字符吗?
2022-08-29 23:55:23
我想通过JavaScript函数将文本显示为HTML。如何在 JavaScript 中转义 HTML 特殊字符?是否有 API?
我想通过JavaScript函数将文本显示为HTML。如何在 JavaScript 中转义 HTML 特殊字符?是否有 API?
以下是几乎适用于所有Web浏览器的解决方案:
function escapeHtml(unsafe)
{
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
如果您仅支持现代 Web 浏览器(2020+),则可以使用新的 replaceAll 函数:
const escapeHtml = (unsafe) => {
return unsafe.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", ''');
}
function escapeHtml(html){
var text = document.createTextNode(html);
var p = document.createElement('p');
p.appendChild(text);
return p.innerHTML;
}
// Escape while typing & print result
document.querySelector('input').addEventListener('input', e => {
console.clear();
console.log( escapeHtml(e.target.value) );
});
<input style='width:90%; padding:6px;' placeholder='<b>cool</b>'>