博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React 30 秒速学:制作自动识别链接的文本组件
阅读量:6136 次
发布时间:2019-06-21

本文共 1136 字,大约阅读时间需要 3 分钟。

本文译自:。React 30 秒速学:全篇中文翻译、学习,地址:,所有案例进行分析、注释、上线。

30-seconds-of-react 教程里, String 这一节做了一个自动识别文本中的链接的组件,还挺实用,也可以加深我们对正则使用的了解。

AutoLink自动识别文本中的链接

将字符串中的URL转换为适当的 <a> 元素。

  • 使用正则表达式配合 String.prototype.split()String.prototype.match()来查找字符串中的URL。
  • 返回一个<React.Fragment>不产生多余的元素;其匹配的URL呈现为<a>元素,必要时需要处理丢失的协议前缀补充为http://,并将其余字符串呈现为明文。
import React from "react";function AutoLink({ text }) {  // 用于找 url 的正则表达式  const delimiter = /((?:https?:\/\/)?(?:(?:[a-z0-9]?(?:[a-z0-9\-]{1,61}[a-z0-9])?\.[^\.|\s])+[a-z\.]*[a-z]+|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3})(?::\d{1,5})*[a-z0-9.,_\/~#&=;%+?\-\\(\\)]*)/gi;  return (    
{/* 按正则分割为数组,最终渲染时被显示在了一起 */} {text.split(delimiter).map(word => { // foo bar baz // http://example.org // bar console.log(word); // 从以上分割的内容中找到具体的url的部分 // 进行超链接的处理 let match = word.match(delimiter); if (match) { let url = match[0]; return (
{url} ); } return word; })}
);}复制代码
例子
export default function() {  return 
;}复制代码

转载地址:http://kqrua.baihongyu.com/

你可能感兴趣的文章
视频 - 在 VirtualBox 中部署 OpenStack
查看>>
2013-7-10学习笔记[字符串操作,指向函数的指针]
查看>>
企业如何用InfBox架设自己的内部即时信息IM服务器
查看>>
Tomcat结合memcached实现sessio共享
查看>>
Windows Phone 7 水平滚动的文本
查看>>
Codis 是一个分布式 Redis 解决方案
查看>>
Java实现Http的Post、Get、代理访问请求
查看>>
Java中Vector和ArrayList的区别
查看>>
[LeetCode] Validate IP Address 验证IP地址
查看>>
理解 Neutorn LBaaS - 每天5分钟玩转 OpenStack(120)
查看>>
如何实现大图居中超过的部分两边自动隐藏
查看>>
Unshelve Instance 操作详解 - 每天5分钟玩转 OpenStack(39)
查看>>
Redis的安装与使用(单节点)
查看>>
CIO该如何掌控“数字化冰山”
查看>>
NXP为Hexiwear提供即插即用的NFC解决方案
查看>>
台积电宣布5nm工艺2020年量产:苹果A14/A14X订单有戏
查看>>
为企业实力代言!新华三获OpenStackCompatible标识
查看>>
编码准则与Java编译器
查看>>
三星扩充10nm/7nm产能 这次花了8.5万亿
查看>>
Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
查看>>