react native 从文本中获取所有链接

Posted

技术标签:

【中文标题】react native 从文本中获取所有链接【英文标题】:react native get all links from a text 【发布时间】:2021-06-06 04:07:40 【问题描述】:

我想从反应原生的文本中获取所有链接。喜欢

someFunction.getLinks('Any links to github.com here? If not, contact test@example.com');

应该返回类似的东西

[
  
    type: 'url',
    value: 'github.com',
    href: 'http://github.com'
  ,
  
    type: 'email',
    value: 'test@example.com',
    href: 'mailto:test@example.com'
  
]

react 中的 Linkify 可以做到这一点,但我们如何在 react native 中做到这一点?

【问题讨论】:

【参考方案1】:

工作应用:Expo Snack

import * as React from 'react';
import  Text, View, StyleSheet, FlatList  from 'react-native';
import Constants from 'expo-constants';
var linkify = require('linkifyjs');

import  Card  from 'react-native-paper';

export default function App() 
  const data = linkify.find(
    'Any links to github.com here? If not, contact test@example.com'
  );

  console.log(JSON.stringify(data));
  return (
    <View style=styles.container>
      <FlatList
        data=data
        renderItem=( item ) => (
          <View
            style=
              padding: 10,
              backgroundColor: 'rgba(255,0,0,0.1)',
              marginTop: 5,
            >
            <Text style=styles.paragraph>`type: $item.type`</Text>
            <Text style=styles.paragraph>`type: $item.value`</Text>
            <Text style=styles.paragraph>`type: $item.href`</Text>
          </View>
        )
      />
    </View>
  );


const styles = StyleSheet.create(
  container: 
    flex: 1,
    justifyContent: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
    padding: 8,
  ,
  paragraph: 
    fontSize: 18,
  ,
);


【讨论】:

以上是关于react native 从文本中获取所有链接的主要内容,如果未能解决你的问题,请参考以下文章

React Native - 文本位于状态栏 - 如何进一步降低?

我运行了 react-native 链接领域,但仍然出现错误

如何在 WebView [React-Native] 中禁用用户文本选择

在 react-native 文本输入中检测粘贴事件

单击使用 react-native 时如何更改图像和文本颜色?

如何在 React Native 中使用状态从 TextInput 获取值?