gpt4 book ai didi

javascript - 如何用链接替换普通 URL?

转载 作者:行者123 更新时间:2023-11-28 10:07:22 26 4
gpt4 key购买 nike

我使用下面的函数来匹配给定文本中的 URL 并将其替换为 HTML 链接。正则表达式运行良好,但目前我只替换第一个匹配项。

如何替换所有网址?我想我应该使用 exec 命令,但我并没有真正弄清楚如何做到这一点。

function replaceURLWithHTMLLinks(text) {
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
return text.replace(exp,"<a href='$1'>$1</a>");
}

最佳答案

首先,使用您自己的正则表达式来解析 URL 是一个糟糕的想法。您必须想象这是一个足够常见的问题,有人已经编写、调试过并 tested根据 the RFCs 的一个库。 URI 很复杂 - 查看 code for URL parsing in Node.js以及维基百科页面 URI schemes .

解析 URL 时存在大量边缘情况:international domain names 、实际的 (.museum) 与不存在的 (.etc) TLD、奇怪的标点符号,包括 parentheses 、URL 末尾的标点符号、IPV6 主机名等。

我看过a tonlibraries ,尽管有一些缺点,但还是有一些值得使用的:

我很快就取消了执行此任务资格的图书馆:

如果你坚持使用正则表达式,最全面的是 URL regexp from Component ,尽管它会通过查看它来错误地检测到一些不存在的两字母 TLD。

关于javascript - 如何用链接替换普通 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com