关于javascript:提取并添加链接到字符串中的URL

Extract and add link to URLs in string

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to replace plain URLs with links?

我有几个字符串中有链接。例如:

1
var str ="I really love this site: http://www.stackoverflow.com"

我需要添加一个链接标签,这样str将是:

1
I really love this site: http://www.stackoverflow.com

我想可能会涉及到一些regex,但是我不能让它与match()一起工作。任何其他想法


这很容易:

1
str.replace( /(http:\/\/[^\s]+)/gi , '$1' )

输出:

1
I really love this site: http://www.stackoverflow.com


1
2
3
4
function replaceURL(val) {
  var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
  return val.replace(exp,"$1");
}


我可以想到一个快速而肮脏的基于正则表达式的解决方案。有点像

1
2
RegExp exp = new RegExp('(.*)(http://[^ ])(.*)', 'g'); // matches URLs
string = string.replace(exp, $1 + '' + $2 '' + $3);

不过我还没有测试过,所以需要改进。