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

在React Native中如何将&amp转换为真实&符号并正确渲染?

原生实现方案

适合仅需处理&amp单一转换场景,无额外依赖,性能更优:

  • 方案1:字符串拆分 + 富文本嵌套渲染
    React Native 内置的Text组件支持嵌套元素,你可以先拆分原始字符串,匹配到目标片段时直接返回strong包裹的元素即可,示例代码:
// 文本处理函数
const renderFormattedText = (rawStr) => {
  // 按目标字符串拆分内容
  const fragmentArr = rawStr.split(/(&amp)/g);
  return fragmentArr.map((fragment, index) => {
    if (fragment === '&amp') {
      return <strong key={index}>&</strong>;
    }
    return fragment;
  });
};

// 组件内使用
<Text>{renderFormattedText('你的原始文本内容包含&amp;amp')}</Text>
  • 方案2:HTML实体解码后处理
    如果你的场景还有其他HTML实体需要处理,可以先写简易解码函数统一处理后再做格式转换:
const decodeHtml = (str) => {
  return str.replace(/&amp;amp/g, '&')
            .replace(/&lt;/g, '<')
            .replace(/&gt;/g, '>')
            .replace(/&quot;/g, '"');
};

解码后按照方案1的富文本嵌套逻辑,将需要加粗的&用strong标签包裹即可。

第三方库实现方案

如果你后续还有其他HTML片段渲染需求,可以用成熟的HTML渲染库,自动解析标签、解码实体:

  • 方案1:react-native-render-html
    生态内最常用的全功能HTML渲染库,支持自定义标签样式、自动处理HTML实体,示例用法:
import RenderHTML from 'react-native-render-html';
import { useWindowDimensions } from 'react-native';

const DemoComponent = () => {
  const { width } = useWindowDimensions();
  // 先替换目标字符串为你需要的HTML结构
  const htmlStr = 原始文本.replace(/&amp;amp/g, '<strong>&</strong>');
  return <RenderHTML contentWidth={width} source={{ html: htmlStr }} />;
};
  • 方案2:react-native-htmlview
    轻量版HTML渲染库,体积更小,适合简单HTML片段渲染场景,直接传入处理好的HTML字符串即可正常渲染标签。
注意事项
  • 不要直接将拼接了HTML标签的字符串传入原生Text组件渲染,React Native不会自动解析字符串内的HTML标签,会原样输出文本内容。
  • 如果只有&amp;amp一种转换需求,优先使用原生实现方案,减少不必要的依赖引入,降低应用包体积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:06:03