javascript - 用于查找链接的正则表达式

标签 javascript regex

我有一个问题,涉及为某些条件下的链接查找正则表达式。这是场景:

我创建了 utils.ts,它是一个 typescript 。基本上,它将 API 响应作为输入并返回格式化的 HTML 支持文本,例如粗体文本、电子邮件、图像、链接。

让我们来看一个我面临的场景。

作为 utils.ts 文件的返回,我得到了这个。

https://www.google.com <a href="https://www.youtube.ca" target="_blank">Click here</a> (注意:普通链接和'a'标签链接可以以任何顺序出现)

从上面的文字中可以看出这部分<a href="https://www.youtube.ca" target="_blank">Click here</a>已经是 HTML 支持的方法。 所以我将在 GUI 上得到以下输出

https://www.google.com Click here

所以从这一点来看,我想要一个可以格式化 https://www.google.com 的正则表达式但它不能操纵 <a href="https://www.youtube.ca" target="_blank">Click here</a>因为它已经格式化。

这里我也想格式化https:///www.google.com如下

Google

我面临的主要问题是,当我用带有标签的“https://..”替换字符串时,它也会像这样替换“href”中的链接

<a href="https://www.google.com">Google</a> <a href="<a href="https://www.youtube.com">Google</a>">Click me</a>

这是我不想要的。

请分享您对此的想法。

谢谢

最佳答案

尚未格式化的链接可以使用交替找到。这个想法是——如果一个链接被格式化,它就不会被捕获到一个组中(不要对正则表达式仍然能找到一些东西感到困惑——你应该只看Group 1)。否则,链接将被捕获到一个组。

下面的正则表达式非常简单,只是为了解释这个想法。您可能希望使用更好的 URL 搜索模式对其进行更新。

demo

(?:href="https?\S+")|(https?\S+)

关于javascript - 用于查找链接的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56650620/

相关文章:

javascript - 有一个空白数组,我需要添加数字

php - array_unique 和 preg_split PREG_SPLIT_NO_EMPTY 的等效项

regex - 如何将 BASH 变量插入到 PERL 正则表达式替换中?

用于解析 Instagram 标题中提到的用户名的正则表达式

java - 如何提取虚线内的内容

javascript - D3 投影未设置 cx 属性

javascript - 在脚本链接标签中使用注释

javascript - 防止页面滚动 - 禁用拖动

正则表达式按空格分割(引号或方括号除外)

Python 回复 : Overwrite Issue