-3

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

我希望通过解析文本输入(通过 javascript)来查找所有 URL,然后链接它们(包装标签),以便用户可以单击它们,从而使用户的生活更轻松一些。Facebook 甚至 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,但我认为在我的情况下不太可能。我怎样才能预防经期?

4

1 回答 1

1

就像@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>');
    }

编辑:修正错字

于 2012-08-28T21:00:32.223 回答