0

Взял код вот с этой страницы: Замена текстовых ссылок на гиперссылки в тексте

Немного изменил, не понимаю почему не работает:

$(".paragraph").each(function(index, elem){
    //$(this).text();

    var mess = $(this).text(); 
    var reg =  /(\w+:\/\/)?(www\.)?[\w+\-]+\.\w+/g;

    pregMatch = mess.match(reg);
    var str = (/:\/\//.exec(s) === null ? "http://" + s : s );
    //return "<a href=\""+ str + "\">" + str /*s*/ + "</a>";
   $(this).text("<a href=\""+ str + "\">" + str /*s*/ + "</a>");

});

1 ответ 1

2

Так вы его сами сделали нерабочим...

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@:%_\+.~#?,&\/\/=]+)/g;

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

    return urlArray;
}
$(".paragraph").each(function (index, elem) {
    var mess = $(this).text();
    var urlArray = findUrls(mess);
    urlArray.forEach(function (url) {
        var temp = mess.split(url);
        mess = temp.join("<a href=\"" + url + "\">" + url + "</a>");
    });
    $(elem).html(mess);
});

Посмотреть пример

5
  • Вот какая проблема появилась: jsfiddle.net/64pcF/1 И основная проблема, у меня на сайте они вообще отображаются не как ссылки, а текстово : <a href="yadi.sk">http://yadi.sk</a> , в чем может быть дело?
    – MaXiM3006
    22 мая 2014 в 8:09
  • @MaXiM3006, скорее всего, что некоторые символы, в частности угловые скобки, у вас заменены на мнемоники. Т.е., например, &lt; - соответствует "<", а &gt; - ">"
    – Deonis
    22 мая 2014 в 9:11
  • 2
    Потому что html-код нужно вставлять как .html(), а не как .text().
    – VenZell
    22 мая 2014 в 9:21
  • подсвечивать почту не нужно, как удалить её из выборки?
    – MaXiM3006
    22 мая 2014 в 9:31
  • @MaXiM3006, обновил ответ, удалив почту из выборки.
    – VenZell
    22 мая 2014 в 10:06

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.