我有一个问题,涉及为某些条件下的链接查找正则表达式。这是场景:
我创建了 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
如下
我面临的主要问题是,当我用带有标签的“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 搜索模式对其进行更新。
(?:href="https?\S+")|(https?\S+)
关于javascript - 用于查找链接的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56650620/