我有一个 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>'
});
}
关于javascript - 用链接和 chop 值替换 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022986/