javascript - 用链接和 chop 值替换 anchor

标签 javascript jquery regex dom anchor

我有一个 JavaScript 函数,用于检测链接并用 anchor (html) 替换链接。然而,问题是有些人粘贴了大量链接,导致页面元素过多,从而破坏页面(通常)。

有谁知道一种简单的方法,可以将以下两个函数组合成一个函数,提供一个 anchor 标记,其中包含链接的 chop 版本?

IE转换

http://Superlonglink

进入

<a href="http://Superlonglink">http://Super...</a>

使用以下函数的组合:

用 anchor 替换链接的函数:

function replaceURLWithHTMLLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp,"<a href='$1' target='_blank'>$1</a>");
}

chop 字符串的函数:

String.prototype.trunc = function(n){
      return this.substr(0,n-1)+(this.length>n?'':'');
};

我已经研究这个有一段时间了,但是我发现我对 javascript 的正则表达式的理解有点有限

最佳答案

function replaceURLWithHTMLLinks(text, maxlen) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp, function( link ) {
        return '<a href="' + link + '" target="_blank">' +
            (link.length > maxlen ? link.substring( 0, maxlen ) + "..." : link) + '</a>'
    });
}

演示:http://jsfiddle.net/84Le9/2/

关于javascript - 用链接和 chop 值替换 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022986/

相关文章:

javascript - 向 URL 添加参数时防止路由解释

javascript - 通过浏览器对网页进行身份验证

javascript - 如何从 JavaScript 中的字符串中提取基本 URL?

javascript - 使用此 JavaScript 将 cookie 加载到变量中

javascript - Socket.IO 和 IE8 - jsonp 轮询连接总是失败

asp.net-mvc - ASP.net MVC 下载 Excel

jquery - 寻找一个类似于wrapAll的jQuery函数,它只会包装连续的元素

java - 匹配特定模式之前的任何内容

java - Android 中忽略 HTML 中的特定标签

javascript - 如何向列表添加元素?