星期五, 3月 15, 2013

[ASP] 把內文含有 http 或 ftp 的連結文字,直接加上 A 標籤

又一陣子沒有把 ASP 翻出來了,剛好有個需求是要將 WinForm 程式寫入的資料中,只要含有 http 或 ftp 的連結文字,在網頁上顯示時直接讓它變成可以點選。

這樣的功能看似簡單,但是做起來感覺有點麻煩,因為文字的內容得修改如下:

XXXXXXXX http://aaa.bbb.ccc/ddd/eee.zip XXXXXXXXXXXXXXXXXXXX,XXXXXXXXXXXXXXXXXXXX

XXXXXXXX  http://aaa.bbb.ccc/ddd/eee.zip
XXXXXXXXXXXXXXXXXXXX,XXXXXXXXXXXXXXXXXXXX不但找到的連結要多複製一份,還得把它包進 的標籤中;還好,這一陣子剛好在看正規表示法,找了一下 vbscript 裡正規表示法的使用方式後,就可以用比較優雅的方式把需要的功能做出來了,真棒!

程式碼如下:


Dim regEx, Match, Matches ' 建立變量。
Set regEx = New RegExp ' 建立正則表達式。
regEx.Pattern = "((h|f)[t]?tp:\/\/[^ ]+)" ' 設置模式。
regEx.IgnoreCase = True ' 設置是否區分字符大小寫。
regEx.Global = True ' 設置全局可用性。
ReplacedString = regEx.Replace(strng, "$1") ' 執行搜索。