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

如何在React的componentDidMount中移除Fetch获取的JSON数据中的p标签?

移除JSON数据中的p标签再存入State

你猜的完全没错——页面上的p标签确实来自API返回的JSON数据本身。要在把数据存入state前清理掉这些标签,你可以在fetch的第二个then方法里对返回的数据做预处理,用正则表达式替换掉<p>和</p>标签就行。

这里给你修改后的componentDidMount代码示例,假设你的返回数据是一个包含quote对象的数组,每个对象里有个带p标签的字段(比如叫content):

componentDidMount() {
  fetch(API)
    .then(response => response.json())
    .then(rawData => {
      // 遍历原始数据,清理每个quote里的p标签
      const cleanedQuotes = rawData.map(quote => {
        return {
          // 保留原对象的其他属性
          ...quote,
          // 替换掉content字段里的<p>和</p>标签
          content: quote.content.replace(/<\/?p>/g, '')
        };
      });
      // 把处理后的数据存入state
      this.setState({ quotes: cleanedQuotes });
    })
    .catch(err => console.error('数据请求失败:', err));
}

一些补充说明:

  • 如果你的rawData是单个对象而不是数组,直接处理对应的字段就行:
    const cleanedQuote = {
      ...rawData,
      content: rawData.content.replace(/<\/?p>/g, '')
    };
    this.setState({ quotes: cleanedQuote });
    
  • 要是你想移除所有HTML标签而不只是p标签,可以用更通用的正则:
    content: quote.content.replace(/<[^>]+>/g, '')
    
  • 记得根据你实际的JSON结构调整字段名(比如可能是text而不是content),别直接照搬示例里的字段~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:40:34