将字符串中的 url 替换为 href 链接 - 适用于多种地址类型

Replace url's in a string with href links - for multiple address types

本文关键字:适用于 类型 地址 链接 href 字符串 url 替换      更新时间:2023-09-26

我已经使用这个解决方案有一段时间了:

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

但是,此解决方案仅转换字符串中的某些类型的URL,甚至不适用于www.google.com之类的链接(需要以http://开头(

因此,我想问是否有更合适的解决方案,最好是可以转换google.com的解决方案; mail.google.com,甚至del.icio.us以及电子邮件地址。

我是不是找得太多了?我们可以在大多数地方实时看到这种情况发生 - 正确的路线是什么?

看看这个正则表达式: http://www.regexr.com/39suh将http等放在匹配的组中,并要求在 url 中.。我确定这不是最理想的解决方案,但它工作正常......

('b((https?|ftp|file):'/'/)?[A-Z0-9.]*'.[-A-Z0-9+&@#'/%=~_.|]+)