ReactNative 搜索词高亮 split替换

interface HighLightProps {
  str: string,
  keywords: string,
  style: TextStyle
}
const HighLightKeywords: FC<HighLightProps> = ({ str = '', keywords = '', style }) => {
  if (!str) return null
  const newData = str.split(keywords) //  通过关键字的位置开始截取,结果为一个数组
  return (
    <Text style={style}>
      {
        newData.map((item, index) => {
          if (!index) { // 当下标是0的时候,直接返回当前项
            return <Text key={index}>{item}</Text>
          } else {
            return <Text key={index}><Text style={{ color: '#f00' }}>{keywords}</Text>{item}</Text>
          }
        })
      }
    </Text>
  )
}

使用

// usage
  <HighLightKeywords str='关键词高亮' style={{ fontSize: 16, height: 24, lineHeight: 24 }} keywords={’关键词高亮‘} />

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容