Javascript找到url并用链接替换它,并在需要时截断文本

时间:2011-10-19 14:45:38

标签: javascript regex

我有一个函数可以将urls从一大块文本中拉出来并用链接替换它们。我想要做的是看看$ 1的长度,如果超过64chars,我想用“link”之类的东西替换它。我只是不确定如何处理这个问题。

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

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

尝试 -

var str = "http://www.yahooghghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdf.co.uk";
str = str.replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, function($0) { 
    if ($0.length > 60 ) return "<a href='" + $0 + "' target='_blank'>Link</a>" 
    else return "<a href='" + $0 + "' target='_blank'>" + $0 + "</a>"     
})
alert(str);

演示 - http://jsfiddle.net/E7hyd/