关于javascript:在任意字符串中的所有URL中创建链接

Create links out of all URLs in an arbitrary string

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to replace plain URLs with links?

我希望通过解析文本输入(通过javascript)来找到所有的URL,然后链接它们(包装标签),以便用户只需单击它们,从而使用户的生活变得更加轻松。Facebook也会做一些类似的事情,让你知道我在找什么。

1
2
3
4
5
6
function censorLinks(text) {
    return text.replace(
        new RegExp('(https?://[^\\s]+)', 'g'),
        '$1'
    );
}

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


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

我最近做了类似的事情,还没有测试过这个,但也许这会很奇怪…

1
2
3
4
5
6
7
8
    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,'$1')
            .replace(email, '$1');
    }

编辑:固定打字错误