【问题标题】:How can I remove this p tag from my json fetch如何从我的 json 提取中删除这个 p 标签
【发布时间】:2018-03-28 22:55:04
【问题描述】:

我正在使用 React 和 fetch 从 api 获取这些数据我删除了我拥有但仍然出现在那里的 p 标签,这不是我想要的。我认为 json 数据中的文本有一个 p 标签。我怎样才能删除它?

我在生命周期方法 componenDidMount 上使用 fetch:

componentDidMount() {
    fetch(API).then(response => response.json()).then(data => this.setState({ quotes: data}));
  }

在添加到状态之前,如何查找和替换 p 标签? 我正在尝试在生命周期方法中执行此操作,但它不断向我抛出错误

【问题讨论】:

  • 使用 JSON API 解析定位 p 标签,然后将其移除
  • 使用 .replace() 或 .substring()

标签: javascript arrays json reactjs fetch


【解决方案1】:

替代使用正则表达式的matbous回答,您可以像这样直接替换标签:

let demoJSON = {
 field: "<p>Hello World</p>"
}

demoJSON.field.replace('&lt;p&gt;','').replace('&lt;/p&gt;', '');

console.log(demoJSON.field);

componentDidMount() {
   fetch(API).then(response => response.json()).then(data => this.setState({ 
quotes: data.replace('<p>','').replace('</p>', '')}));
}

应该可能有效,@Matou 在他的评论中的回答也应该有效。如果没有,您能否分享实际的错误输出,以便我们进一步提供帮助。

【讨论】:

  • 我添加了额外的信息,你能帮我更多吗?我卡住了
【解决方案2】:

应该这样做:

let demoJSON = {
  field: "<p>Hello World</p>"
}

console.log(demoJSON.field.replace(/(<([^>]+)>)/ig, ""));

【讨论】:

  • 我添加了额外的信息,你能帮帮我吗
  • 根据返回的 JSON 的格式,您可以执行以下操作:componentDidMount() { fetch(API).then(response =&gt; response.json()).then(data =&gt; { data.field = data.field.replace(/(&lt;([^&gt;]+)&gt;)/ig, ""); this.setState({quotes: data}); }); }
  • 不起作用,它给我一个错误说:未处理的拒绝(TypeError):无法读取未定义的属性“替换”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
相关资源
最近更新 更多