好,盲目地利用http://www.osix.net/modules/article/?id=586
var emailRegex =
new RegExp(
'([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}' +
'\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.' +
')+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)',
"gi");
var urlRegex =
new RegExp(
'((https?://)' +
'?(([0-9a-z_!~*\'().&=+$%-]+:)?[0-9a-z_!~*\'().&=+$%-][email protected])?' + //[email protected]
'(([0-9]{1,3}\.){3}[0-9]{1,3}' + // IP- 199.194.52.184
'|' + // allows either IP or domain
'([0-9a-z_!~*\'()-]+\.)*' + // tertiary domain(s)- www.
'([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.' + // second level domain
'[a-z]{2,6})' + // first level domain- .com or .museum
'(:[0-9]{1,4})?' + // port number- :80
'((/?)|' + // a slash isn't required if there is no file name
'(/[0-9a-z_!~*\'().;?:@&=+$,%#-]+)+/?))',
"gi");
然後
text.replace(emailRegex, "<a href='mailto::$1'>$1</a>");
和
text.replace(urlRegex, "<a href='$1'>$1</a>");
力量正則表達式的工作
emailRegex第一行略有變化: 將\移動到封閉上下文(更改順序)的末尾。 var emailRegex = new RegExp( '([a-zA-Z0-9 _ \。\ - ] +)@((\ [[0-9] {1,3}'+ '\。[0 -9] {1,3} \。[0-9] {1,3} \。)|(([a-zA-Z0-9 \ - ] + \''+ ')+))([ a-zA-Z] {2,4} | [0-9] {1,3})(1)'), 「gi」); – albertpeiro 2013-12-18 15:23:59