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

React中如何移除字符串HTML标签并保留正确格式?

解决React中转义HTML字符串的格式保留问题

处理思路

不能一次性把所有标签替换成空格,需要分阶段精准处理:

  1. 拆分段落:将转义后的</p>替换为换行符,同时移除<p>标签,让每个原段落内容自动换行
  2. 清除剩余标签:删除所有转义后的非段落标签(如<span>、<br>)
  3. 替换特殊空格:把&nbsp;转换为普通空格
  4. 清理冗余空格:合并行内连续空格,过滤空行及行首尾多余空格

实现代码

import { useState, useEffect } from 'react';

function App() {
  const [string, setString] = useState(
    `&lt;p&gt;&lt;span style=&quot;color: blue;&quot;&gt;General Power&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This contains some info.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;!&lt;/p&gt;&lt;p&gt;enable&lt;/p&gt;&lt;p&gt;bus at&lt;/p&gt;&lt;p&gt;terminal: &lt;span style=&quot;color: red;&quot;&gt;Name&amp;nbsp;Terminal&lt;/span&gt;&lt;/p&gt;&lt;p&gt;enable bus name &lt;span style=&quot;color: red;&quot;&gt;Switch Bus&lt;/span&gt;&lt;/p&gt;&lt;p&gt;no ip domain-lookup&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;ip domain name &lt;/span&gt;&lt;span style=&quot;color: red;&quot;&gt;region&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;.google.com&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;!&lt;/p&gt;`
  );

  useEffect(() => {
    let processed = string;
    
    // 1. 处理段落标签,拆分内容为换行
    processed = processed.replace(/&lt;\/p&gt;/gi, '\n').replace(/&lt;p&gt;/gi, '');
    
    // 2. 移除所有其他转义HTML标签
    processed = processed.replace(/&lt;[^&gt;]+&gt;/gi, '');
    
    // 3. 替换特殊空格实体
    processed = processed.replace(/&nbsp;/gi, ' ');
    
    // 4. 清理多余空格与空行
    processed = processed.split('\n')
      .map(line => line.trim().replace(/\s+/g, ' '))
      .filter(line => line !== '')
      .join('\n');

    setString(processed);
  }, []);

  return (
    <pre>{string}</pre>
  );
}

export default App;

效果说明

处理后会得到符合预期的格式:

General Power
This contains some info.
!
enable
bus at
terminal: Name Terminal
enable bus name Switch Bus
no ip domain-lookup
ip domain name region.google.com
!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:40:22