You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSON.stringify后如何在JavaScript中转换HTML实体字符

在JavaScript中批量转换HTML实体字符的方法

当然有啦!不用写一堆重复的替换语句,JavaScript里有几种高效的方式来批量处理HTML实体转实际字符,分场景给你介绍:

浏览器环境:利用DOM原生解析

浏览器本身就具备解析HTML实体的能力,我们可以借助隐藏的DOM元素来实现解码:

function decodeHtmlEntities(str) {
  // 创建一个临时的div元素
  const tempElement = document.createElement('div');
  // 将带实体的字符串赋值给innerHTML,浏览器会自动解析实体
  tempElement.innerHTML = str;
  // 返回解析后的文本内容
  return tempElement.textContent || tempElement.innerText || '';
}

// 测试示例
const originalStr = 'This is a test – More tests';
const decodedStr = decodeHtmlEntities(originalStr);
console.log(decodedStr); // 输出:This is a test – More tests

这个方法的好处是:

  • 无需手动维护实体映射表,浏览器原生支持所有标准HTML实体(包括命名实体如©、数字实体如–)
  • 代码简洁,不需要额外依赖

Node.js环境:使用第三方库

Node.js没有DOM环境,推荐使用专门处理HTML实体的第三方库he(HTML Entities):

  1. 先安装库:
npm install he
  1. 解码示例:
const he = require('he');

const originalStr = 'This is a test – More tests';
const decodedStr = he.decode(originalStr);
console.log(decodedStr); // 输出:This is a test – More tests

he库的优势:

  • 支持所有HTML实体,包括XML实体和自定义实体
  • 提供丰富的配置选项,比如可以指定是否解码特定类型的实体
  • 性能稳定,处理复杂场景更可靠

不推荐的方式:手动正则替换

虽然可以通过正则配合实体映射表来实现,但HTML实体数量众多(仅标准实体就有数百个),手动维护映射表不仅麻烦,还容易遗漏或出错,所以除非特殊需求,不建议采用这种方式。

内容的提问来源于stack exchange,提问作者OldMcDonald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:04:33