【问题标题】:How to convert html string into plain text in React? [duplicate]如何在 React 中将 html 字符串转换为纯文本? [复制]
【发布时间】:2020-08-25 08:29:58
【问题描述】:

如何在 React 中将 html 字符串(带有很多标签等)转换为纯文本?可能有任何 npm 模块吗?

我还没有找到任何将html 字符串转换为纯文本的方法。我需要这个,因为我想将在Ckeditor 5 中编辑的文本文件保存为纯文本文件,但 Ckeditor 5 以 html 或 markdown 格式管理数据。

【问题讨论】:

  • 您想在 React 组件中将 HTML 字符串呈现为真实的 HTML 吗?
  • 不,我想从 html 字符串中获取纯文本字符串(不含任何 html 标签)。
  • 您可以创建一个内存元素并在其上使用.innerTextconst div = document.createElement('div'); div.innerHTML = htmlString; return div.innerText;
  • 詹姆斯·怀特利,没有。它将 jsx 转换为字符串,但不会删除所有那些

    等标签。它只适用于实际的 React 组件,我需要它适用于任何 html 字符串。
  • 最好不要让用户一开始就插入任何标记信息(例如在降价中),这样您就不必将其删除,并且可以安全地假设所有文本实际上都是只有文字。也无法安全地确定纯文本是否有意包含看起来像标记的文本。

标签: javascript node.js reactjs ckeditor ckeditor5


【解决方案1】:

您可以编写自己的代码来实现这一点,无需库。

var htmlString = "<h1><b>test</b></h1>";
var plainString = htmlString.replace(/<[^>]+>/g, '');

console.log(plainString ); // you will have your plain text

function getText(html){
    var divContainer= document.createElement("div");
    divContainer.innerHTML = html;
    return divContainer.textContent || divContainer.innerText || "";
}

var yourString= "<div><h1>Hello World</h1>\n<p>We are in SOF</p></div>";

console.log(getText(yourString));

【讨论】:

  • AFAIK he.decode 不是普通的 JS,它来自图书馆吗?
  • 仅供参考,在 htmlstring 上使用 reex 是个坏主意
  • 你是对的! @Rajesh 添加了一个没有正则表达式的解决方案。
  • 对于 htmlString.replace(/]+>/g, '');  没有被替换。如果按照这个方法怎么办?
猜你喜欢
相关资源
最近更新 更多
热门标签