用ASP實現論壇的UBB功能

來源:互聯網
上載者:User
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] 下一頁  



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.