2011-03-03 60 views
1

任何人都可以帮助一个函数,将解析所有的URL到文本字符串中的有效的HTML链接?Coldfusion在文本中解析URL

例如: “欢迎www.nerds4life.com查看我们的文章在nerds4life.comhttp://nerds4life.com或也http://www.nerds4life.com

将成为:

“欢迎www.nerds4life.com查看我们的文章在nerds4life.com或。在http://nerds4life.comhttp://www.nerds4life.com

什么是t他最好的办法来解决这个问题。正则表达式(如果有的话,怎么样?),或通过文本中的每个字环(会认为是低效率)

感谢

回答

3

再次...有可能是一个更优雅的正则表达式...

当然,如果这个URL不够用,那么Google的“好”正则表达式对于寻找URLs是毫无疑问的。

<cfset myText = "Welcome to www.nerds4life.com. View our articles at nerds4life.com or at http://nerds4life.com or also http://www.nerds4life.com or at https://foo.com or http://123.com" /> 

<cfset myNewText = rereplaceNoCase(myText, '((http(s)?://)?((www\.)?\w+\.\w{2,6}))', '<a href="http://\4">\1</a>', 'all') /> 
+0

嗨再次查理http或www和终止字符串开始解析URL。再次,这是迄今为止每个测试案例的诀窍,所以谢谢! – Cheeky 2011-03-03 19:53:03

+0

对于像“www.google.com.au”这样的实例,这实际上失败了。 – 2014-07-28 02:03:28

0

这将是一个空格

<cfset myString = "Welcome to www.nerds4life.com. View our articles at nerds4life.com or at http://nerds4life.com or also http://www.nerds4life.com"> 
<cfset URLinString = rereplaceNoCase(myString, '(((http(s)?://)|(www))\.?(\S+))', '<a href="http://\1">\1</a>', 'all')>