ubb|ubb
前幾日我曾經閱讀到一篇技術文章講述如何使用VBScript中的Regex對象來實現論壇裡面的UBB功能。VBScript提供的Regex對象功能非常強大,但是只有5。5以上的指令碼引擎才可以很好的支援Regex對象,為了獲得版本是5。5的指令碼引擎,你需要單獨安裝這個指令碼引擎,或者安裝IE5.5,也就是說對伺服器的要求比較苛刻,那就沒有其他的方法實現UBB功能了嗎?當然不是了,現在就跟隨我一同來使用普通的VBScript指令碼語言來實現功能強大的UBB功能吧。
先,在UBB功能中,核心功能也即最迷人的功能是完全支援貼圖功能和字型屬性的控制。因為出於安全方面的原因,網路上面的幾乎所有的論壇都儘可能的屏蔽掉了HTML代碼,這樣可以避免人為的有意無意的對論壇的破壞,這樣雖然保證了論壇自身的安全性,但是網友面對的貼子內容就始終是一成不變的顏色、字型、大小,更不要奢望看到絢麗多彩的圖片了。UBB代碼由此而生,具體來說說我們如何?以上的UBB核心功能。
下面我們先來詳細描述一下我們將要實現的UBB代碼的文法:
一、支援貼圖的UBB文法
文法:
執行個體:
描述:上面文法的結果就是在網頁上面顯示出來一幅圖片
二、支援字型顏色的UBB文法:
文法:[red]文字[/red]
[green]文字[/green]
等等
執行個體:[blue]這是一段藍色的文字[/blue]
描述:上面的一段文法就是顯示一段藍顏色的文字
三、支援超級串連的UBB代碼
文法:串連地址
執行個體:http://www.webjx.com
描述:上面的文法的結果就是產生一段超級串連,當你點擊的時候就會轉跳到串連的地址!
四、支援Email地址的UBB文法
文法:你的email地址[/email]
執行個體:info@webjx.com
描述:上面的代碼結果就是顯示一個郵件地址,當你用滑鼠點擊的時候,就會自動開啟寄送電子郵件的軟體,並將地址寫上。
五、支援字型屬性的UBB文法
文法:一段文字等等
執行個體:一段粗體的文字
描述:上面代碼的結果就是顯示一段粗體的文字
好了,UBB代碼的核心功能就是上面的這些東西了,當然你還可以增加其他的種種功能因為這個UBB代碼的文法都是可以自訂的。
在我們開始具體實現UBB功能之前,我們先來瞭解幾個重要的VBScript函數:Instr函數和Replace函數。也許你看到這裡忍不住想要說,這也太簡單了吧,呵呵,其實這兩個函數的確是我們在編程當中使用比較頻繁的兩個函數,但是它也有自己的小秘密哦,我們先來看看這兩個函數的具體
文法:
InStr函數
返回某字串在另一字串中第一次出現的位置。
InStr([start, ]string1, string2[, compare])
參數
start
可選項。數值運算式,用於設定每次搜尋的開始位置。如果省略,將從第一個字元的位置開始搜尋。如果start包含Null,則會出現錯誤。如果已指定compare,則必須要有start參數。
string1
必選項。接受搜尋的字串運算式。
string2
必選項。要搜尋的字串運算式。
compare
可選項。指示在計運算元字串時使用的比較類型的數值。有關數值,請參閱"設定"部分。如果省略,將執行二進位比較。
設定
compare參數可以有以下值:
常數
值
描述
vbBinaryCompare
0
執行二進位比較。
vbTextCompare
1
執行文本比較。
傳回值
InStr函數返回以下值:
如果
InStr返回
string1為零長度
0
string1為Null
Null
string2為零長度
start
string2為Null
Null
string2沒有找到
0
在string1中找到string2
找到匹配字串的位置
start > Len(string2)
0
大家應當注意到了,我們所要用的函數Instr的小秘密就是它的最後一個可選擇參數Compare,因為我們的UBB代碼需要大小寫不敏感的,預設的情況下,函數Instr是要進行二進位匹配的,也就是說是對大小寫敏感的,所以記住了,這個Compare參數的值應當設定成為1才可以滿足我們的要求。
Replace函數
返回字串,其中指定數目的某子字串被替換為另一個子字串。
Replace(expression, find, replacewith[, compare[, count[, start]]])
參數
expression
必選項。字串運算式包含要替代的子字串。
Find
必選項。被搜尋的子字串。
Replacewith
必選項。用於替換的子字串。
Start
可選項。expression中開始搜尋子字串的位置。如果省略,預設值為1。在和count關聯時必須用
count
[1] [2] 下一頁