在任意字符串中创建所有URL的链接

Create links out of all URLs in an arbitrary string

本文关键字:URL 链接 创建 任意 字符串      更新时间:2023-09-26

可能重复:
如何用链接替换普通URL?

我希望通过解析文本输入(通过javascript)来查找所有URL,然后链接它们(包装标签),这样用户就可以点击它们,从而让用户的生活变得更轻松。脸书甚至SO也做了类似的事情,让你知道我在寻找什么。

function censorLinks(text) {
    return text.replace(
        new RegExp('(https?://[^''s]+)', 'g'),
        '<a href="$1" target="_blank">$1</a>'
    );
}

我不需要支持每一个协议。我认为http和https现在已经找到了。我假设http://之外直到空白处的所有内容都是URL。这几乎是可行的,但有一个小问题:如果URL以句点结束,则句点将被包括在内。我想这是一个有效的URL,但我认为在我的情况下不太可能。如何预防经期?

就像@Truth说的,这可能是一个重复的帖子,但。。。

我最近也在做类似的事情,还没有测试过,但也许这会成功。。。

    var email = /('w+@[a-zA-Z_]+?'.[a-zA-Z]{2,6})/gim;
    var url = /('b(https?|ftp|file):'/'/[-A-Z0-9+&@#'/%?=~_|!:,.;]*[-A-Z0-9+&@#'/%=~_|])/ig;
    function convert(input) {
        return input
            .replace(url,'<a href="$1" target="blank">$1</a>')
            .replace(email, '<a href="mailto:$1">$1</a>');
    }

编辑:修复打字错误