2011-03-03 62 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')>