我想通过JavaScript函数将文本显示为HTML.如何在JavaScript中转义HTML特殊字符?有API吗?

推荐答案

以下是一个几乎适用于所有web浏览器的解决方案:

function escapeHtml(unsafe)
{
    return unsafe
         .replace(/&/g, "&")
         .replace(/</g, "&lt;")
         .replace(/>/g, "&gt;")
         .replace(/"/g, "&quot;")
         .replace(/'/g, "&#039;");
 }

如果您只支持现代Web浏览器(2020+),则可以使用新的replaceAll功能:

const escapeHtml = (unsafe) => {
    return unsafe.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;').replaceAll("'", '&#039;');
}

Javascript相关问答推荐

使用CDO时如何将Vue组件存储在html之外?

基于每个索引迭代嵌套对象

如何最好地从TypScript中的enum获取值

jQuery提交按钮重新加载页面,即使在WordPress中使用preventDefault()

WebRTC关闭navigator. getUserMedia正确

如何使用JavaScript将文本插入空div

Google maps API通过API返回ZERO_RESULTS,以获得方向请求,但适用于Google maps

未定义引用错误:未定义&Quot;而不是&Quot;ReferenceError:在初始化&Quot;之前无法访问';a';

不能将空字符串传递给cy.containes()

单个HTML中的多个HTML文件

查询参数未在我的Next.js应用路由接口中定义

将Node.js包发布到GitHub包-错误ENEEDAUTH

为什么我的按钮没有从&q;1更改为&q;X&q;?

基于产品ID更新条带产品图像的JavaScript命中错误

ngOnChanges仅在第二次调用时才触发

通过跳过某些元素的对象进行映射

我正在试着做一个TicTacToe Ai来和我玩.但是,我试着在第一个方块被点击时出现一个X,然后在第二个方块之后出现一个O

Next.js无法从外部本地主机获取图像

将字体样式应用于material -UI条形图图例

如何按区域进行过滤并将其从结果数组中删除?