1

是否可以在段落中找到所有以 http 和 https 开头的字符串并使用 jquery 转换为链接?

我在我的网站上获得了我的 twitt 列表,所有行都以 http 和 https 开头,显示为普通字符串 [文本]。我想将它们转换为超链接。这可以用javascript,jQuery吗?

4

3 回答 3

3

这是检查字符串中的 URL 并将其转换为链接的代码。这也将检测以 WWW 开头的链接。希望这会有所帮助。

function Checkurl(text) {
        var url1 = /(^|<|\s)(www\..+?\..+?)(\s|>|$)/g,
        url2 = /(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/g;

        var html = $.trim(text);
        if (html) {
            html = html
                .replace(url1, '$1<a style="color:blue; text-decoration:underline;" target="_blank"  href="http://$2">$2</a>$3')
                .replace(url2, '$1<a style="color:blue; text-decoration:underline;" target="_blank"  href="$2">$2</a>$5');
        }
        return html;
    }
于 2012-09-07T12:33:17.393 回答
2

像这样的东西?

$(document).ready(function() {
   var linkable_content = $('div#linkable').html().replace(/(https?:\/\/[^ ;|\\*'"!,()<>]+\/?)/g,'<a href="$1">$1</a>');
    $('div#linkable').html(linkable_content);
});

来源:http ://tangible.ca/articles/44/snippet-jquery-linkifier

于 2012-09-07T12:24:22.823 回答
0

jQuery WikiText 插件中的以下实用程序函数将起作用:

function findUrls( text )
{
    var source = (text || '').toString();
    var urlArray = [];
    var url;
    var matchArray;

    // Regular expression to find FTP, HTTP(S) and email URLs.
    var regexToken = /(((ftp|https?):\/\/)[\-\w@:%_\+.~#?,&\/\/=]+)|((mailto:)?[_.\w-]+@([\w][\w\-]+\.)+[a-zA-Z]{2,3})/g;

    // Iterate through any URLs in the text.
    while( (matchArray = regexToken.exec( source )) !== null )
    {
        var token = matchArray[0];
        urlArray.push( token );
    }

    return urlArray;
}

JSFiddle 这里

我希望这有帮助!

于 2012-09-07T12:33:21.310 回答