2026-06-05 11:11:41
在JavaScript中,可通过浏览器内置的DOM解析器将HTML实体字符解码为普通文本,核心方法是创建临时DOM元素并利用innerHTML与innerText属性实现自动转换。
解码原理浏览器解析HTML时会自动将实体编码(如é或é)转换为对应字符。通过模拟这一过程:
为优化性能(避免重复创建DOM元素),可使用闭包封装逻辑:
const normalizeText = (() => { const tempDiv = document.createElement('div'); // 缓存DOM元素 return (encodedText) => { tempDiv.innerHTML = encodedText; return tempDiv.innerText; };})();// 使用示例console.log(normalizeText('pokémon')); // 输出: pokémonconsole.log(normalizeText('★ Star')); // 输出: ★ Star注意事项直接操作innerHTML可能引发XSS攻击,但此处仅通过innerText提取纯文本,相对安全。
若需将解码结果插入DOM,需额外转义处理。
在Node.js中,可使用he库或手动替换:
// 使用he库(需安装:npm install he)const he = require('he');console.log(he.decode('pokémon')); // 输出: pokémon总结通过上述方法,可高效解决JavaScript中HTML实体解码问题,确保特殊字符正确显示。