VBscript腳本語言


VBScript語言概述

  在ASP中,通過使用VBscript腳本語言編寫程序代碼,可以實現主要的功能模塊。將VBscript程序嵌入到HTML中,制作出動態交互的Web頁面,VBScript是程序開發語言Visual Basic的一個子集,為ASP默認的編程語言

  一、VBScript腳本語言的特點

  •   語言簡單,易學易懂
  •   增強客戶端功能、降低WEB服務器負荷。VBScript使得程序在將表單數據發送到服務器之前,就可以驗證表單的數據,以進行相應處理,還可以動態的創建新的WEB內容,甚至可以編寫完全在客戶端運行的程序,並可以用於擴展客戶端的功能
  •   可用於ASP程序設計。ASP提供了一個服務器端的腳本環境,應用VBScript語言可編寫動態、交互、高效的應用程序。
  •   多種嵌入形式。開發者可以應用免費的VBScript腳本來編寫程序。VBScript與IE瀏覽器是集成在一起的,VBScript和ActiveX空間也可以在應用程序中結合使用以實現特定的功能

  二、VBScript代碼編寫格式

  VBScript是VB語言的子集,他是專門為IE開發的編程語言,使用VBScript的目的是控制頁面內容的動態交互性。使用VBScript可以編寫服務器端腳本,也可以編寫客戶端腳本

  1.服務器端腳本編寫格式

  服務器端腳本在服務器上執行,由服務器根據腳本的執行結果生成相應的HTML界面,發送到客戶端。只有服務器端腳本才能實現真正的“動態網頁“的功能。服務器端腳本的執行不受瀏覽器的限制,腳本在網頁通過網絡傳送給瀏覽器之前被執行,WEB瀏覽器收到的只是標准的HTML文件

  在ASP程序中,編寫服務器端腳本有兩種方法。

  a.方法一:將腳本代碼放在<%...%>標識符之中

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>服務器端腳本1</title>
</head>
    <%
        dim num
        num=1
        if num <> 0 then response.Write("歡迎來到ASP編程世界")
    %>        
<body>
</body>
</html>
View Code

  b.方法二:將腳本代碼放置在<script>...</script>標記之間

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>服務器端腳本2</title>
</head>
    <script language="vbscript" runat="server">
        dim num
        num=1
        if num <> 0 then response.Write("歡迎來到ASP編程世界")
    </script>        
<body>
</body>
</html>
View Code

  2.客戶端腳本編寫格式

  客戶端本由瀏覽器解釋執行。由於客戶端腳本隨着HTML頁面下載到客戶端瀏覽器,在用戶本地執行,因此其執行速度明顯快於服務器端腳本。客戶端腳本常用於做簡單的客戶端驗證或實現網頁特效等。

  客戶端腳本的代碼是寫在<script></script>標記之間的。可以將編寫完成的代碼塊放置在HTML文檔中的任何位置。但是通常情況下,是在代碼塊放在<Head>標記之間的,以便查看和使用

  <script language="腳本語言" [event="事件名稱"] [for="對象名稱"]>

    <!--

      //腳本代碼

    -->

  </script>

    language:用於指定腳本代碼使用的語言

  event:用於指定腳本代碼相關聯的事件

  for:用於指定腳本代碼相關聯的對象

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>客戶端腳本</title>
<script language="VBSCRIPT" event="onClick" for="btn1">
    MsgBox "您單擊了此按鈕"
</script>
</head>
<body>
<input name="btn1" value="單擊按鈕" type="button" id="btn1"/>
</body>
</html>
View Code

注意:VBScript的MsgBox函數不能在服務器端腳本中使用,因為信息框是用戶界面元素,不能在服務器端執行

三、常量與變量

  常量與變量是VBScript的常見元素,本節介紹VBScript中常量、變量的聲明和賦值以及如何確定變量的作用域和存活期

  1.VBscript常量

  常量是具有一定含義的名稱,用於代替數值和字符串,在程序執行期間其值不會發生變化。常量可分為普通常量和符號常量。普通常量可以稱為文字常量,它不必定義就可以在程序中使用,而符號常量則要以Const語句加以聲明才能使用

  a.文字常量

  按照數據類型的不同,分為字符串常量、數值常量和日期時間常量

  字符串常量:主要是由一對雙引號括起來的字符序列組成

  數值常量:分為整形常量、長整型常量和浮點型常量。其中整形常量和長整型常量可以用十進制、十六進制和八進制三種形式表示

  日期和時間常量::用一對#號括起來#2007-12-09 11:12:32#

  b.符號常量

  符號常量使用一個標識符表示的常量,用於代替數字和字符串,在程序執行期間其值不會發生變化。在VBScript中,可以通過關鍵字Const語句定義。分為預定義符號常量和用戶自定義常量

  預定義常量:是在VBScript中建立的,並在使用之前不用定義的常量。在代碼的任意位置都可以使用此常量所表示的說明值。例如:vbCr表示回車;Empty表示沒有初始化之前的值

  用戶自定義常量:通過Const語句來創建的。使用Const語句可以創建具有一定意義的字符串型或數值型常量,並賦予一個初始值。例如:Const PI=3.1415  Const OlympicsBJ=#2008-8-8#

  2.變量的聲明和賦值

  變量是一種使用方便的占位符,主要用於引用計算機的內存來存儲腳本運行時更改的數據類型。在VBScript中的變量不區分大小寫。

  VBScript中聲明 變量有兩種方式,一種是顯式聲明,另一種是隱式聲明

  顯示聲明:通過變量聲明語句來聲明變量,它可以在定義變量的時候為變量在內存中預留內存空間。聲明語句包括Dim語句、public語句和private語句。一個聲明語句可以聲明多個變量,並應用逗號將多個變量分開

  ① 通過Dim語句聲明變量

  Dim 變量名 [,變量名]

    <%
        dim i
        dim Conn,ConnStr,Rs,sqlStr
        dim array(10)
    %>
View Code

  ② 通過public語句聲明變量

  public 變量名 [,變量名]

  例如:public Standard

  ③ 通過Private語句聲明變量

  private語句是用來聲明私有變量的,聲明的變量只能在聲明它的腳本中使用

  private 變量名 [,變量名]

  隱式聲明:因為在VBScript中只有一種數據類型,即遍體類型,所以在VBscript中使用一個變量前是無需聲明的,可以直接在腳本代碼中使用。當在程序運行過程中檢測到該變量時,系統會自動在內存中開辟存儲區域並登記該變量名。

  為了避免隱式聲明時因寫錯變量名等一起的問題,在VBScript中提供了Option Explcit語句。強制聲明會增加代碼量,但可以提高程序的可讀性,減少出錯的機會,Option Explcit語句必須位於ASP處理命令之后、任何HTML文本或腳本命令之前。

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    <%
        Option Explicit
    %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
    <%
        dim str
        str="sss"
    %>
</body>
</html>
View Code

   3.變量的作用域和存活期

  ①變量的作用域:由聲明的位置決定。分為腳本級變量和過程級變量

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>區分變量的作用域</title>
</head>
<body>
    <%
        dim str                '聲明腳本級變量
        str="體育項目"        '賦值
        call GetResult()    '調用子過程
        Response.Write str    '輸出變量的值
        
        '下面定義子過程
        sub GetResult()
        dim str                '聲明過程級變量
        str="網球、乒乓球、足球..."
        end sub        
    %>
</body>
</html>
View Code

四、運算符的應用

  運算符是完成操作的一系列符號。VBScript中運算符包括算數運算符、連接運算符、關系運算符、邏輯運算符等幾種類型。當表達式包含多個運算符時,將按預定順序計算每一部分,該順序稱為優先級

   1.算數運算符

  +:加法

  -:減法

  *:乘法

  ^:指數次方

  /:相除返回浮點型結果

  \:相除返回整形結果

   2.連接運算符

   連接運算符是將兩個字符串連接起來形成一個字符串,有+和&兩種,其中+連接兩個字符串,&可以用來連接兩種不同類型的數據

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
    <%
        dim s1,s2,s3,r1,r2
        s1="today "
        s2="is "
        s3=#12/25/09#
        r1=s1 + s2        '字符串與字符串的連接
        r2=r1 & s3        '字符串與日期的連接
        response.Write r2
    %>
</body>
</html>
View Code

  3.關系運算符

  關系運算符用於對兩個表達式的值進行比較

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>關系運算符</title>
</head>
<body>
    <%
        Dim x
        x=100
        if x <> 200 then    '判斷x是否與200相等
            response.Write "不相等"
        else
            response.Write "相等"
        end if
    %>
</body>
</html>
View Code

   4.邏輯運算符

  邏輯運算符通常也稱為布爾運算符,專門用於邏輯之間的運算。用於完成邏輯運算符的運算符有以下幾種

  ①取反 Not

  ②與運算 And

  ③或運算 Or

  ④異或運算 Xor:如果兩個表達式的結果同時為真或同時為假則結果為假,不然為真

  ⑤等價運算符 Eqv:是異或運算符取反的結果

 五、函數的應用

   VBScript提供了許多重要的內部函數,如字符串函數、轉換函數、日期和時間函數、判斷函數、數學函數以及其它函數的應用

  1.字符串處理

函數 說明
Asc(str) 返回第一個字符的ASCII字符代碼
InStr(start,str1,str2) 返回從字符串str1的start位置查找str2第一次出現的位置,str1和str2同時返回0
Lcase(str) 將字符串中的所有字符轉換為小寫
Left(str,len) 返回字符串str最左側長度為len的字符串
Len(str) 返回字符串的長度
Ltrim(str) 去除str左側的空格
Mid(str,start,len) 返回從str的第start個字符開始的len個字符
Right(str,len) 返回字符串右側的len個字符
Rtrim(str) 去掉字符串右邊的空格
StrComp(str1,str2,[method]) 使用method方式比較兩個字符,其中0表示二進制方式比較,1表示文字方式比較。比較的結果返回為1、-1、0
InStrRev(str1,str2) 返回字符串str1中從尾部開始搜索某字符串str2第一次出現的位置
Trim(str) 去除字符串兩端的空格
Ucase(str) 將字符串str轉換為大寫

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>取字符串的子串</title>
<style type="text/css">
<!--
.STYLE1 {
    color: #3333CC;
    font-style: italic;
    font-weight: bold;
}
-->
</style>
</head>
<body>
    <span class="STYLE1">代碼要求:取出”2015-12-14 15:05:03“中的年月日部分:    </span><br>
    <%
        dim r,len,str
        r=#2015-12-14 15:05:03#
        len=InStr(1,r," ")
        str=Left(r,len)
        response.Write str
    %>
</body>
</html>
View Code

  2.數據轉換

  轉換函數用於將一種類型的數據轉換為其它類型的數據

函數 說明
CBool(expression) 將expression轉換為布爾類型
CByte(expression) 將expression轉換為單字節類型
CDate(expression) 將expression轉換為日期類型
CDbl(expression) 將expression轉換成雙精度類型
Chr(expression) 將expression所表示的ASCII轉換為對應字符串
CInt(expression) 將expression轉換成整數類型
CLng(expression) 將expression轉換成長整數類型
CSng(expression) 將expression轉換成單精度類型
CStr(expression) 將expression 轉換成字符串類型
Hex(expression) 將expression 轉換成十六進制類型
Int(expression) 將expression 向下取整
Fix(expression) 將expression 向上取整
Oct(expression) 將expression 轉換成八進制類型

 如例:將字符串轉換為整形

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>將字符串轉為整形</title>
</head>
<body>
    <%
        dim str,num
        str="100"
        num=Cint(str)+2
        response.Write num
    %>
</body>
</html>
View Code

   3.日期時間數據的處理

  日期時間函數用於對日期、時間數據進行處理

函數 說明
Date() 返回系統當前日期
DateSerial(year,moth,day) 返回日期子類型
DateVlaue(String) 將字符串轉換為日期型
Day(Date) 返回給定日期中的天
Hour(Time) 返回給定時間中的小時
Minute(Time) 返回給定時間中的分鍾
Second(Time) 返回給定時間中的秒
Now() 返回當前系統的日期和時間
Time() 返回當前系統的時間
TimeVlaue(String) 將字符串轉換為時間型
Year(Date) 返回當前日期的年
Month(Date) 返回當前日期的月份
WeekDay(Date) 返回一周中的某一天
DateDiff("str",d1,d2)

計算兩個日期之間的間隔,str為yyyy表示計算年間隔,為m表示計算月間隔,

為d表示日間隔,為ww表示星期間隔,為h表示計算小時間隔,為s表示計算秒間隔

DateAdd("str",num,d1)

返回日期d1加上數字num后的日期,其中num的單位根據str的值而不同

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>得到計算的時</title>
</head>
<body>
    <script language="vbscript" runat="server">
        response.write("今天是星期" & WeekDay(Date)-1 & "<br>")
        response.write("兩年前的今天是" & DateAdd("yyyy",-2,Date()) & "<br>")
        response.write("距離2018-05-01還有:" & DateDiff("d",Date(),#2018-05-01#) & "")
    </script>
    
</body>
</html>
View Code

   4.數據類型的判斷

函數 說明
IsArray(Var) 判斷var是否為一個數組
IsDate(Var) 判斷var是否可以轉換為日期類型
IsEmpty(Var) 判斷var是否已經被初始化
IsNull(Var) 判斷var是否為空
IsNumber(Var) 判斷var是否為數字
IsObject(Var) 判斷var是否為對象
VarType(Var) 判斷var的類型,返回0表示空,2表示整數,7表示日期,8表示字符串,11表示布爾值,8204表示數組

  數據類型判斷函數應用比較廣泛,在使用數據之前判斷此數據的類型,有助於提高程序運行的有效性

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>判斷函數應用</title>
</head>
<body>
    <%
        dim num
        num=1
        if not isempty(num) then
            response.Write "不為空"
        else
            response.Write "空值"
        end if
    %>
</body>
</html>
View Code

 

  5.數學函數的應用

函數 說明
Rnd 用於返回一個隨機數
Randomize 初始化隨機數生成器
Int 返回數字的整數部分
Fix 返回數字的整數部分
Abs 返回數字的絕對值
Exp 返回e的冪次方
Log 返回數值的自然對數
Sqr 返回數值的平方根
Round 返回按指定位數進行四舍五入對的值

  代碼:生成隨機數

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>生成隨機數</title>
</head>
<body>
    <%
        dim i,r,str
        for i=1 to 3
            Randomize
            r=Int((6*rnd)+1)
            str=str&r
        next
        response.Write "生成隨機數為:" & str
    %>
</body>
</html>
View Code

 

六、數組的創建與應用

  數組是有序數據的集合。數組中的每一個元素都屬於同一數據類型,用一個統一的數組名和下標可以唯一確定數組中的元素,下標是放在緊跟在數組名之后的括號中。數組的最大維數為60

  1.創建數組

  在VBScript中有固定數組和動態數組兩種

  ①固定數組:數組大小在程序運行時不可改變的數組。數組在使用前必須先聲明

    dim array(i)

  在VBScript中,數組的下標是從0開始計數的,數組的長度為i+1

  例如:

    dim ary(3)    '該數組的長度是4而不是3

    dim db_array(5,10)  '聲明一個6*11的二維數組

  聲明數組后就可以通過下標對數組進行指定賦值

  例如:

    dim ary(3)

    ary(0)="demo"

  ②動態數組:聲明數組時也可以不指明它的下標,這樣的數組叫做變長數組

  例如:

    dim ary()

  雖然動態數組聲明時無須指明下標,但在使用它之前必須使用ReDim語句確定數組的維數

    dim array()

    Redim array(i)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>使用動態數組</title>
</head>
<body>
    <%
        dim i
        dim MyArray()        '聲明動態數組
        Redim MyArray(3)    '定義長度為4
        
        for i=0 to 3
            MyArray(i)=2*i
        next
        response.Write "數組MyArray中元素為:<br>"
        for i=0 to 3
            response.Write MyArray(i) & "<br>"
        next
    %>
</body>
</html>
View Code

 

  使用Redim語句可以多次改變元素下標,即重新動態調整動態數組大小的次數是沒有限制的,但是使用Redim語句重新聲明數組后,原有數組的數值將會全部清空,如果希望保留原有下標數值,則可以I使用Preserve關鍵字

  例如:

    dim ary()

    Redim ary(5)

    ......

    Redim Preserve ary(Ubount(ary)+1)

    以上代碼將數組長度加1,但數組中原有的元素值不變。Ubound()函數返回原有數組的最大索引

  2.應用數組函數

  數組函數用於對數組的操作,主要有LBound函數、UBound函數、Split函數和Erase函數

  ①LBound函數:返回指定數組維的最小可用下標

    LBound(函數名稱,[,維數])

  維數是指要返回指定維下界的整數,如果為1則表示第一維,為2表示第二維...如果省略維數,則默認維數為1

  例如:代碼結果為0

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>使用動態數組</title>
</head>
<body>
    <%
        dim ary(5,10)
        response.Write(LBound(ary,2))
    %>
</body>
</html>
View Code

 

  ②UBound函數:返回指定數組維的最大可用下標

  UBound(函數名稱,[,維數])

  ③Split函數:返回基於0的一維數組,其中包含指定數組的子字符串。

  Split(expression [,分隔符 [,count [,比較類型]]])

    expression:表示需要處理的字符串,包含子字符串和分隔符。如果表達式長度為零,則返回空數組

    count:可選項,表示被返回的子字符串數目,如果為-1,則返回所有子字符串。

    比較類型:為可選項,用於指示在計算子字符串時使用的比較類型的數值,0表示二進制比較,1表示文本比較,2表示基於數據庫中包含信息的比較

  例如:讀取字符串中以符號/分割的各子字符串

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>使用動態數組</title>
</head>
<body>
    <%
        dim str,str_sub,i
        str="ASP程序開發/VB程序開發/.NET程序開發"
        str_sub=Split(str,"/")
        for i=0 to Ubound(str_sub)
            response.Write(i+1 & ". " & str_sub(i) & "<br>")
        next
    %> 
</body>
</html>
View Code

 

   ④Erase函數:重新初始化固定大小數組的元素,並釋放數組的存儲空間。

    Erase array

七、程序控制語句

  1.選擇語句

  ①if...then...end if

  ②if...then...else...end if

  ③select case 變量或表達式

    case:結果1

      命令序列

    ...

    end select

  2.循環語句

  ① do...loop語句分為兩種

  循環條件出現在語句的開始部分

  do while 條件表達式

    循環體

  Loop

  或

  do util 條件表達式

    循環體

  Loop

  循環條件出現在語句的結尾部分

  do

    循環體

  loop while 條件表達式

  或

  do

    循環體

  loop util 條件表達式

  其中while和util關鍵字的作用相反,while是條件為true時執行循環體,而util是條件為true時退出循環體

  在do...loop語句中,當條件表達式在前時,表示在循環條件為真時才能執行循環體,而表達式在后時,至少會執行一次循環體

  在do...loop語句中,強制退出循環使用exit do,for語句中使用exit for

  例如:應用do...loop計算多個數字的和

 1 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 6 <title>do loop</title>
 7 </head>
 8 <body>
 9     <%
10         dim num,sun
11         num=0
12         sum=0
13         do until num>50
14             num=num+1
15             sum=sum+num
16         loop
17         response.Write("求和得到的結果是: " & sum)
18     %> 
19 </body>
20 </html>
View Code

  ②while...wend循環控制語句 :當指定的條件為true時執行一系列的語句,該語句與do...loop循環語句類似

  while condition

    [statement]

  wend

  condition:數值或字符串表達式,其計算結果為true或false。

   ③for...next循環控制語句:for...next語句是一種強制性的循環語句

  for count=start to end [step number]

    statement

      [exit for]

  Next

  ④ for each ...next循環控制語句:主要用於數組或集合中的每個元素而重復執行的語句,特別是在不知道集合長度的時候是不錯的選擇

  for each 元素 in 集合或數組

    循環體

    [exit for]

  next

  ⑤exit退出循環語句:主要用於退出,do...loop、for...next、function、sub代碼塊,其對應的退出語句分別為exit do、exit for、exit function、exit sub

八、過程的創建與調用  

  過程是一組能執行指定任務的腳本命令,在VBScript中,過程分為兩種,分為Sub過程和Function過程,兩者的區別在於sub沒有返回值,而function過程有返回值

  1.調用sub過程

  sub過程指包含在sub和end sub之間的VBScript語句,該過程執行操作但是沒有返回值,sub過程可以使用參數(參數可以為調用過程傳遞的常量、變量或表達式)

  聲明一個過程的語法格式如下:

  Sub 子程序名([參數1,參數2])

    ......

  end sub

  在asp頁面中,調用sub有以下方式

  ①使用call語句調用sub過程

    call 子程序名(參數1,參數2)    ‘使用call語句可以將控制權傳遞給sub過程

  ②直接調用sub過程

  子程序名 參數1,參數2...

  例如:自定義sub過程判斷閏年

 1 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 6 <title>判斷閏年</title>
 7 </head>
 8 <body>
 9     <%
10         sub y(num)
11             if (num mod 4=0) and (num mod 100 <> 0) then
12                 response.Write(num & "年:是閏年<br>")
13             else
14                 response.Write(num & "年:不是閏年<br>")
15             end if
16         end sub
17         call y(2000)
18         y 2020
19     %> 
20 </body>
21 </html>
View Code

 

  2.調用function過程

  Function過程是包含在Function和end Function之間的一組VBScript語句,Function通過過程名返回一個值,這個值是在過程的語句中賦值給過程名的。Function返回值的類型總是Varian

  Function過程的語法格式如下:

  [public | private] Function name ([arglist])

    [statements]

    [name=expression]

    [exit Function]

    [Statemtns]

    [name=expression]

  end function

  function過程各參數說明:

參數 說明
public 表示Function過程可以被腳本中的所有其他過程訪問
private 表示Function過程只能被聲明它的腳本中的過程訪問
name 過程名稱
arglist 參數列表
statements 主體中執行的語句組
expression 常量、變量或表達式

  Function過程的調用方法和sub過程的調用方法相同。當Function過程沒有返回值的時候可以使用call來調用過程;當Function過程有返回值時,使用過程名來調用過程

  例如:定義Function過程限制標題顯示的長度

 1 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 6 <title>function</title>
 7 </head>
 8 <body>
 9     <%
10         function title__(tit)
11             if(len(tit)>20) then
12                 title__=left(tit,20)&"..."
13             else
14                 title__=tit
15             end if
16         end function
17         dim str 
18         str = "春之頌 大型電影交響音樂會將於2018年4月18日19:30 在國家大劇院盛裝上演"
19         response.Write "原標題名稱為:"&str&"<br>"
20         response.Write "修正后的標題為:"&title__(str) 
21     %> 
22 </body>
23 </html>
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM