【问题标题】:HTML tags to JSX React NativeJSX React Native 的 HTML 标记
【发布时间】:2026-01-26 23:45:01
【问题描述】:

我正在调用一个返回一些 HTML 的 API:

示例:

<p>Hello there</p><p>Javascripti</p>

我想在我的 React Native 应用程序中使用它,但这次我想将所有 &lt;p&gt; 标签替换为 &lt;Text&gt;,因为这是我可以在 React Native 中使用的东西。

我怎样才能实现这样的目标?我不知道如何翻译或解析 HTML。

编辑:我使用正则表达式将&lt;p&gt; 设为&lt;Text&gt;,但它只返回一个字符串。它在屏幕上显示:&lt;Text&gt;Lorem Ipsum&lt;/Text。如何将其解析为可读的 JSX?

【问题讨论】:

  • 你试过正则表达式吗?
  • 我将 p 标签替换为 Text 标签。但我还是有问题。

标签: javascript reactjs react-native html-parsing jsx


【解决方案1】:

JSX 基本上是用于调用createElement 的语法糖(如herehereespecially here):

React.createElement(component, props, ...children)

因此,一旦您捕获了 &lt;p&gt;&lt;/p&gt; 标记内的文本,您就可以生成任何这样的标记:

let capturedContent = 'Hello there'

const element = React.createElement('Text', { }, capturedContent)

【讨论】:

    【解决方案2】:

    这里可以使用正则表达式:

    标签已更改

    const myRegex = /(<p>|<\/p>)/g;
    const myHtml = '<p>Hello there</p><p>Javascripti</p>';
    
    myHtml.replace(myRegex, 'Text');
    

    然后将其放入您的 jsx 的 React-Native 渲染中。会是这样的。我不知道你的完整设置,所以很抱歉:

    render() {
     return (
      {myHtml}
     )
    }
    

    【讨论】:

    • 我只是用文本替换了 p 标签。但它仍然返回一个字符串。所以它在屏幕上显示: Hello World (它将标签打印到屏幕上)。另外:/p/g 将每个 'p' 替换为 'Text'。还有 Javascripti 中的“p”。所以我使用了 /

      /g 和 //g

    • @Raiders 我编辑了我的问题。抱歉,我很快就做了那个正则表达式。
    最近更新 更多