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

 

转载于:https://www.cnblogs.com/dzj0712/p/8728497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值