第 3 章 脚本语言 vbscript

97
1 第 3 第 第第第第 VBScript 3.1 ASP 第第第第 3.2 VBScript 第第第第 3.3 VBScript 第第第第 3.4 VBScript 第第第第 3.5 第第第第第 3.6 第第第第第第第第 3.7 VBScript 第第第第

Upload: niyati

Post on 21-Jan-2016

188 views

Category:

Documents


0 download

DESCRIPTION

第 3 章 脚本语言 VBScript. 3.1 ASP 基本语法 3.2 VBScript 语法基础 3.3 VBScript 基本元素 3.4 VBScript 控制语句 3.5 过程与函数 3.6 基本输入输出函数 3.7 VBScript 常用函数. 1. 学习目标. 介绍了 VBScript 语言的基本知识,包括 VBScript 基本语法、 VBScript 基本元素、 VBScript 控制语句以及 VBScript 函数与过程等。通过本章学习,读者可以熟练利用 VBScript 脚本语言开发 ASP 程序。通过本章学习,读者可以达到以下目标: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 3 章 脚本语言 VBScript

11

第 3 章 脚本语言 VBScript

3.1 ASP基本语法3.2 VBScript语法基础3.3 VBScript基本元素3.4 VBScript控制语句3.5 过程与函数3.6 基本输入输出函数3.7 VBScript 常用函数

Page 2: 第 3 章 脚本语言 VBScript

22

学习目标 介绍了 VBScript 语言的基本知识,包括

VBScript 基本语法、 VBScript 基本元素、VBScript 控制语句以及 VBScript 函数与过程等。通过本章学习,读者可以熟练利用 VBScript 脚本语言开发 ASP 程序。通过本章学习,读者可以达到以下目标:

掌握 ASP 程序的基本语法; 掌握 VBScript 语法知识; 了解常用的 VBScript 函数使用方法了解输

入输出函数的使用。

Page 3: 第 3 章 脚本语言 VBScript

33

3.1 ASP基本语法

3.1.1ASP 语法 要区分 HTML 标记与普通文字,可以在

HTML 命令标记的两端加上 "<"和 ">" 分隔符。那么要区分服务器端的 ASP 脚本和其它字符,可以用 "<%" 和 "%>" 包含 ASP 的命令加以区别,除此之外另有一个标准的HTML 标记 <script> ,在编写服务器端的ASP 脚本可以使用它来标识服务器端用户定义的函数、方法或模块,但须在 <script>标记内指定属性 runat="server" ,如果没指定 runat="server" 的将是会在客户端浏览器运行。这不是 ASP 了。

Page 4: 第 3 章 脚本语言 VBScript

44

1. ASP 命令 ASP 命令必须放在 "<%"与 "%> " 之间,例如: <

%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

2. ASP 注释 为了养成良好的编程风格外,适度的注释不可少, ASP 提

供了两中注释方式: 单引号“ ‘ ”,在单引号之后的这行文字都视为注释。例如: <

%' 这是注释的方式一 '%> 。 rem 关键词,在 REM 后的文字,视为注释。例如 <%rem 这是

注释的方式二 %> 。

3. 赋值语句 ASP 中一般变量的赋值语句是 "=" 而对象是用 set 语句来赋值的

Page 5: 第 3 章 脚本语言 VBScript

55

4. 声明脚本语言 ASP 默认的语言是 VBScript ,如果你想要其它

语言来编写 ASP 就要声明所用的语言了,通常用有三种办法 :

在 IIS 中设置你要使用的默认脚本语言; 在 ASP 文件里声明,示例:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> 上面的代码声明了当前文件使用 VBSCRIPT 语言, 936

中文编码,这个声明要写在第一行。 第三种声明方法:

<script language="JScript" runat="server"></script>

Page 6: 第 3 章 脚本语言 VBScript

66

3.1.2建立 ASP程序 ASP 程序就是扩展名为 .asp 的文本文件,是

一个动态网页,其数据的获取是一个动态的,因此其创建过程和运行过程都与 .html 文档不一样。

1 .创建站点 创建与管理站点的详细过程在第二章中已经介绍

了,因为在动态网页中执行时需要用服务费,所示这里的重点是对测试服务器的设置。

【例 3-1 】创建一个能够运行动态 asp 程序的网站“ ASPWeb” 。

Page 7: 第 3 章 脚本语言 VBScript

77

2 .创建 ASP 程序 ASP 的创建过程和 HTML 的创建过程基本类似,但是最

后的文档扩展名和类型不一样。在上面站点的基础上创建ASP 程序。

【例 3-2 】在例 3-1 的网站中创建一个能够利用 VBScript 脚本编写代码的 ASP 程序“ 3-1.asp” 。

3. 配置服务器 要执行 asp 文档,必须首先设置服务器,这里假设我们的web 服务器是 IIS ,并且已经安装好,这里配置 IIS ,其执行步骤为。(注意不同的系统步骤和操作过程可能有点不一样)

【例 3-3 】创建并设置虚拟目录,配置例 3-2 中所创建的站点的运行环境。

eg3-1.asp<html><head> <title>ASP日期时间显示 </title></head><body> 欢迎大家访问我们的第一个 ASP 网站! <br>今天是: <%=date()%>。 <br>时间是: <%=time()%>。 <br>(请按 F5刷新页时间)</body></html>

Page 8: 第 3 章 脚本语言 VBScript

88

eg3-2vb.html<html>

<head><title>vbscript显示日期</title>

</head><body>

欢迎大家访问我们的第一个 ASP 网站!<br><script language="vbscript“ > nowdate=date()

document.write "今天是: "& nowdate & "。<br>" document.write " 时间是: " & time() & "。<br>(请按

F5刷新页时间) " </script></body>

</html>

runat="server“

文件扩展名为 .asp

Page 9: 第 3 章 脚本语言 VBScript

99

4. 运行 ASP 程序 IIS 配置好后, ASP 的运行过程就比较简单

了,现在回到 Dreamweaver 开发环境,选择“文件”→ “在阅读器中预览” →“ IExplore6.0”(不同机器的环境不一样),执行结果如图 3.8 所示,并且我们可以按照提示,按 F5 后可以刷新时间。

Page 10: 第 3 章 脚本语言 VBScript

1010

3.2 VBScript语法基础3.2.1 VBScript简介

VBScript是 Visual Basic Script 的简称,即 Visual Basic 脚本语,有时也被缩写为 VBS 言,它是微软开发的一种脚本语言, VBScript 是程序开发语言 Visual Basic家族的最新成员,是 VB 的子集,语法也与 VB相同。可以看作是 VB 语言的简化版,具有原语言容易学习的特性。

VBScript 是一种基于对象的脚本语言,脚本:是指嵌入到Web 页中的程序代码,利用这些特殊的代码,可以控制网页的控件和对象,增强网页的灵活性和多样性。

VBScript 是目前最流行的脚本语言之一。既可在客户端进行编程,也可作为服务器端编程语言的脚本语言。

目前这种语言广泛应用于网页和 ASP 程序制作,同时还可以直接作为一个可执行程序,用于调试简单的 VB 语句非常方便,是 asp 动态网页默认的编程语言,配合 asp内置对象和 ADO 对象,用户很快就能掌握访问数据库的asp 动态网页开发技术。

Page 11: 第 3 章 脚本语言 VBScript

1111

3.2 VBScript语法基础 VBScript 是一种完全免费的解释性语言,一

种客户端的网页设计语言,能够让网页设计者开发互动多媒体的网页内容。 VBScript 程序代码是直接插入在 HTML 文档中,也就是说 VBScript 必须放在 HTML 文档中,否者无法执行,并使用 <script> 标签标示出来。 在网页中使用脚本代码的基本语法格式如下:

<script language=" 脚本语言名称 " for=“ 对象名称” event=“事件名称” >

<!-- 脚本代码--></script>

Page 12: 第 3 章 脚本语言 VBScript

1212

1 .在 HTML 网页中使用VBScript

VBScript 脚本代码必须放入 <script>……</script) 标记中,其格式为: <Script Language=“VBScript”>

‘VBScript 代码’</Script>

【例 3.3 】在 HTML 网页中弹出一个消息框,内容为“ Hello,VBScript!” 。

程序代码如下: <html>

<head> <title>在 HTML 网页中使用 VBScript</title> </head> <body> <script language="VBScript"> alert("Hello,VBScript!") </script> </body>

</html>

Page 13: 第 3 章 脚本语言 VBScript

1313

2 .在 ASP 网页中使用 VBScript 在 ASP 程序中, VBScript 代码要放在 <%...

%> 之间,或放在 <script>…….</script>之间,但要在 <script language=“vbscript”> 中加入“ runat=server” 。格式为: <% 在服务器端运行的 VBScript 代码 %> 或 <script language="vbscript" runat=server> 在服务器端运行的 VBScript 代码 </script>

Page 14: 第 3 章 脚本语言 VBScript

1414

2 .在 ASP 网页中使用 VBScript【例 3.2 】在 ASP 页面中输出当前的日期。程序代码如下:

<html><head><title>在 ASP 网页中使用 VBScript</title></head><body> <% Response.write"今天是 "& Date %></body>

</html> 或将代码 <%Response.write"今天是 "&Date%>改

为如下形式: <script language="VBScript" runat=server>

Response.write"今天是 "&Date </script>

Page 15: 第 3 章 脚本语言 VBScript

1515

3.2.2 VBScript调用方式 在 VBScript 中,事件过程的调用方式有以

下几种。1. 通过过程名调用事件过程

在 VBScript 标记调用 Sub 语句来定义事件过程,并且要求过程名称必须由控件名称、下划线(_)以及事件名称组合而成。语法格式为:

<script language="vbscript"> Sub 对象名称 _事件名称( [ 参数列表 ] ) 脚本代码 End Sub</script>

【例 3-4 】利用 VBScript 编写程序,程序功能通过过程实现,过程的调用利用过程名实现。

Page 16: 第 3 章 脚本语言 VBScript

1616

Page 17: 第 3 章 脚本语言 VBScript

1717

2. 通过控件的属性调用事件过程 在 Script 标记中定义一个通用的 Sub 过程,然后通

过控件的相关属性来调用该过程。语法格式为:<script language="vbscript"> Sub MyPro( [ 参数列表 ] ) 脚本代码 End Sub</script>…<input type="button" name="Button1" value=" 将鼠

标移动到我上面激活事件 " onMouseOver=" MyPro ">【例 3-5 】利用 VBScript 编写程序,程序功能通过过

程实现,过程的调用是通过控件的属性调用事件过程实现。

Page 18: 第 3 章 脚本语言 VBScript

18

3. 通过 for/event 属性调用处理过程 通过设置上面 <script>的 for 属性来指定 html 页面

中的对象,并通过 event 属性来指定该属性的事件,语法格式为:<script language="vbscript" for=“ 对象名称” event=“事

件名称” > 脚本代码</script>

【例 3-6 】利用 VBScript 编写程序,程序功能通过过程实现,过程的调用是通过 for/event 属性实现。

18

Page 19: 第 3 章 脚本语言 VBScript

19

4. 在标记中直接编写脚本语句 若事件过程比较简单,则可以在定义元素的标记中直接编写

脚本语句。若要包含多条语句,用冒号(:)分开各个语句。【例 3-7 】利用 VBScript 编写程序,程序完成的功能直接编写在脚本语句

中。

19

<html><head><title> 在标记中直接编写脚本语句 </title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><center> <form name="form1" method="post" action=""> <input type="button" name="button1" id="button" value="热烈欢迎 " onclick='msgbox "欢迎、欢迎、热烈欢迎 !" ' language=vbscript> </form> <p> 如果事件过程比较简单,则可以在定义元素的标记中直接编写脚本 </p> </center></body></html>

<html><head><title> 在标记中直接编写脚本语句 </title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><center> <form name="form1" method="post" action=""> <input type="button" name="button1" id="button" value="热烈欢迎 " onclick='msgbox "欢迎、欢迎、热烈欢迎 !" ' language=vbscript> </form> <p> 如果事件过程比较简单,则可以在定义元素的标记中直接编写脚本 </p> </center></body></html>

Page 20: 第 3 章 脚本语言 VBScript

20

3.2.3基本事件 VBScript采用的是面向对象、事件驱动编程机

制。 对象:从面向对象程序设计的角度来看,对象是具

有属性和方法的实体。 格式:对象名 . 属性(或方法)

对象的动作则常常要触发事件。事件驱动指的就是通过事件的发生来推动指定程序的执行 。

要执行 VBScript 脚本,还要激活一个事件,而VBScript 的事件比较多,常用的事件如 P/76表 3-1 所示。

20

Page 21: 第 3 章 脚本语言 VBScript

21

3.2.3基本事件 在 VBScript 中常用的事件有如下几种:( 1 )与系统有关的事件 onLoad :当一个网页被加载时触发。与 body或 frameset 一起

使用 onUnload :当一个网页被卸载时触发。 同上 onFocus :对象获得焦点时触发。 针对鼠标或键盘操作与表单中文本框 ,input,select

onBlur :对象失去焦点时触发。 同上

21

Page 22: 第 3 章 脚本语言 VBScript

22

( 2 )与鼠标有关的事件 onClick :鼠标单击时触发。 onDblClick :鼠标单双击时触发。 onMouseDown :鼠标按下时触发。 onMouseUp :鼠标弹起时触发。 onMouseMove :鼠标移动时触发。 onMouseOver :鼠标移动到对象上时触发。

( 3 )与键盘有关的事件 onKeyPress :按键时触发。 onKeyDown :键被按下时触发。 onKeyUp :键弹起时触发。

Page 23: 第 3 章 脚本语言 VBScript

23

3.3 VBScript基本元素3.3.1 VBScript 数据类型 在 VBScript ,只有一种数据类型,称为 Variant ,也有叫做变体类型。 Variant 变量中保存的数据类型称为变量的子类型。

常见的字类型有字符串、数字、日期、逻辑类型。 Variable=2001 ‘ VBScript 会将它当成整数对待

Variable=“2001” ‘ VBScript 会将它当成字符串对待

Variable=“师范大学” ‘ VBScript 会将它当成字符串对待

Variable=“2012-9-8” ‘ VBScript 会将它当日期对待

具体包含的数据子类型见 P/78表 3-2

Page 24: 第 3 章 脚本语言 VBScript

24

3.3.2 VBScript常量

1 、直接常量(常数) : 直接常量也称为字面常量,指的是可以从字面形式上辨别出来的常量,其实就是我们通常说的常数。

常量类型:①两边加双引号( ")表示字符串常量。区别字符串常量和数

字常量的标志就是看两边是否有双引号。 比如 "100"看起来是数字,但实际上是字符串常量。

②如果发生引号嵌套,就将内层引号替换为单引号( ')或连续两个双引号( ""),

比如 "ab'cd'ef"或 "ab""cd""ef" 。不过,内层如果是中文引号则不必替换。

③两边加 # 号表示日期或时间常量。

Page 25: 第 3 章 脚本语言 VBScript

25

2 、符号常量 所谓符号常量,指的是用一个具有一定含义的直观

的名字来代表一个数值、字符串或日期等常数。 分类:

自定义常量: 须先声明,使用 Const 语句,语法如下:Const 常量名 = 值

例如: Const Day=“星期三” ´字符串常量,必须用双引号“ ”括起来

Const Date=#15/8/2008# ´日期常量,必须用 # 括起来

Const PI=3.1415926 ´数值常量

Const T=true ´逻辑型常量,只有 true或 false 值

内置符号常量 如: vbLongDate 就表示以长日期格式显示

Page 26: 第 3 章 脚本语言 VBScript

26

3.3.3 VBScript变量

所谓变量,就是在程序运行过程中,其值可以被改变的量。 严格说来,变量代表内存中具有特定属性的一个存储单

元,它用来存放数据,也就是变量的值。为了方便引用,我们可以给这个存储单元定义一个名字,这就是变量的名称 。

变量与常量非常类似,只不过常量一经声明其值就不能改变了,而变量在声明后仍可随时对其值进行修改。

在 VBScript 中只有一个基本数据类型 ,即Variant,因此所有变量的数据类型都是Variant

Page 27: 第 3 章 脚本语言 VBScript

27

1. 变量的命名规则 在 VBScript 中,变量的命名规则如下:( 1 )变量名必须以字母开头;( 2 )可以使用字母、数字和下划线,但不能使用任何

标点符号;( 3 )长度不能超过 255 个字符;( 4 )不能使用 VBScript 的关键字,所谓关键字,就是

Const、 Dim、 Sub、 End 等在语法中使用的一些特殊字符串。

Page 28: 第 3 章 脚本语言 VBScript

28

2 、 变量的声明、赋值和引用 在 VBScript 中使用关键字 Dim 声明变量,语法格式

为: Dim 变量名

例如: dim x dim x, y, z 声明(定义)变量可以使用 Dim 语句

如: Dim intA '声明一个变量 intA

变量的赋值也与许多高级语言相同,变量放在等号的左边,赋值语句放在等号的右边,赋值语句可以是一个常量(常数),也可以是一个表达式。

语法格式为:变量名 = 值如: intA=10+20*3

变量的引用和常量类似,可以将变量直接赋值给另外一个变量,也可以将变量引用到表达式中。

Dim intA , intB , intC '声明 3 个变量 intA=5 ' 给变量 intA 赋值 intB=5 ' 给变量 intB 赋值 intC=intA+intB '引用变量 intA和 intB ,将两者之和赋给变量

intC

eg3-8.asp 编写一个根据半径计算圆面积的程序eg3-8.asp 编写一个根据半径计算圆面积的程序

Page 29: 第 3 章 脚本语言 VBScript

2929

字符常量

Page 30: 第 3 章 脚本语言 VBScript

30

3. 强制声明变量

如果希望强制要求所有的变量必须先声明才能使用,则可以在 ASP 文件中所有的脚本语句之前添加 Option Explicit 语句,用法如下:

<% Option Explicit %>

添加了 Option Explicit 语句后,如果使用变量

前没有预先声明,调试程序时就会报错。

Page 31: 第 3 章 脚本语言 VBScript

31

4. 变量的作用范围和有效期 作用范围也称作用域,表示在什么空间范围内可以使用该变

量。在 VBScript 中,变量的作用范围是由变量的声明位置决定的。 过程级变量:如果一个变量在过程或函数内声明,则称其为局部变量或过程级变量,其作用域仅局限于该过程或函数内部,用于临时存放数据。

脚本级变量:如果一个变量在过程或函数外声明,则称其为全局变量或页面级变量,其作用域为整个网页,用于存放整个程序公用的数据,可供当前网页中的各个脚本程序访问。

有效期也称存活期,表示变量从定义开始到最后被撤销的存在时间。

过程级变量的有效期就是该过程的运行时间,过程结束后,变量就随即消失了;

脚本级变量的有效期就是从它被声明那一刻到整个代码的结束。

Page 32: 第 3 章 脚本语言 VBScript

32

数 组 数组代表内存中具有特定属性的若干连续的存储

单元,每个单元都可以用来存放数据,根据单元的索引(也称下标)就可以访问特定的存储单元。

Page 33: 第 3 章 脚本语言 VBScript

33

1. 数组的命名、声明、赋值和引用

数组的命名、声明、赋值和引用与上一节讲的变量基本上是一样的,所不同的只是需要将元素的个数(即数组的长度)包含在数组名称之后的括号里。数组声明的语法格式为:

Dim 数组名 (下标 ) 例如:声明一个包含 8 个元素的一维数组: Dim A(7) 声明一个 3 行 4 列的二维数组: Dim A(2,3)

Dim intA(2) ‘声明一个元素数为 3 的数组

intA(0)=1 ' 给第 1 个数组元素变量赋值

intA(1)=2 ' 给第 2 个数组元素变量赋值

intA(2)=3 ' 给第 3 个数组元素变量赋值

VBScript 数组索引从 0 开始计数 。

Page 34: 第 3 章 脚本语言 VBScript

34

2. 多维数组 多维数组的引用和赋值和一维数组是一样的,只

不过括号中的第 1 个数字表示所在行,第 2 个数字表示所在列 。

举例:声明一个 3 行 4 列的二维数组 Dim intA(2,3) ‘声明一个 3 行 4 列的二维数组 下面是该二维数组的结构示意图:

Page 35: 第 3 章 脚本语言 VBScript

35

3. 变长数组 动态数组是指在程序运行期间长度可以改变的数组,

它使用 Dim或 ReDim 声明,与数组不同的是,动态数组变量后面的括号中可以没有下标。 例如: Dim A()

Redim A() Redim 语句与 Dim 的不同之处在于其数组可以重设数组的维数和大小。

例如: Redim A(3)

Redim preserve A(4) 注意:使用 Redim 重新声明数组后,原有数组的元素值将全部清空,若要保留原有元素值,需要使用 preserve 关键字。

例如: <% Redim Preserve intA(5) %>

Page 36: 第 3 章 脚本语言 VBScript

36

3.3.4 VBScript基本运算

VBScript 运算符和表达式总述 VBScript继承了 VB 的所有类别的运算符,包括算术运算符、连接运算符、比较运算符和逻辑运算符

要注意运算顺序,先计算算术运算符,其次连接运算符,再次比较运算符,最后计算逻辑运算符。

VBScript主要包含三种不同的表达式: 数学表达式(如 3+5*7) 字符串表达式(如 "ab" & "cd") 条件表达式(如 5>3)

Page 37: 第 3 章 脚本语言 VBScript

37

3.3.4 VBScript基本运算

1.算术运算符

大部分运算符两边不需要留空格,但是少数容易混淆的运算符两边必须留空格,如 Mod 。

运算符符号 运算符描述 运算符符号 运算符描述+ 正号 / 除法- 负号 \ 整数除法+ 加法 mod 余数 ( 整数求余 , 非

整数先四舍五入取整 )

- 减法 ^ 指数 (乘方 )

* 乘法

Page 38: 第 3 章 脚本语言 VBScript

38

3.3.4 VBScript基本运算

2. 连接运算符 VBScript连接运算符有“&”或“ +” 两种,

用于将两个字符串进行连接。 + 运算符也可以用于连接字符串,但只有两个操作数都

是字符串时才执行连接运算; 如果有一个操作数是数值、日期或者布尔值,就执行相加运算。

此时,如果有一个操作数无法转换成可以相加的类型,就会出错。

如 : “456”+” xyx”=“456xyx” & 运算符表示强制连接,不管两边的操作数是字

符串、数值、日期还是布尔值,它都会把它们自动转化为字符串然后连接到一起

如: strResult=“ab” & “cd“ ‘结果为 "abcd “

Page 39: 第 3 章 脚本语言 VBScript

39

关于连接符

&用来连接字符串<%C=“ 中国人民” & “万岁”C=“ 中国人民” & bResponse.write “a+b=“ & Cstr(c)C=“ 中国” & “人民” & bResponse.write c & “<p>”

%>

+也可以作为连接符,如C=“ 中国人民” + “万岁”

数字字符区别,例: “1”+1=2 “1”&1=11 “1”+“1”=11

Page 40: 第 3 章 脚本语言 VBScript

40

3. 比较运算符和条件表达式 常用的比较运算符包括

= 、<>、 > 、 < 、>=和<= 这些运算符执行后的结果为 True(真)或 False(假)

如: blnResult=5>3 ' 对两个数字进行比较,结果为True

blnResult=#2008-1-1#<#2008-8-8# '对两个日期进行比较,结果为 True

比较运算符在实际运算中是没有优先顺序的,按从左到右的顺序进行 。

Page 41: 第 3 章 脚本语言 VBScript

41

4. 逻辑运算符 逻辑运算符是对两个布尔值( True或 False)或两

个比较表达式进行一系列的逻辑运算,然后再返回一个布尔值结果。

常用的逻辑运算符有 And(逻辑与)、 Or(逻辑或)和 Not(逻辑非),运算规则如下:( 1 ) And 表示并且,只有两个操作数都是 True 的时候

,结果才为 True ,否则为 False ;( 2 ) Or 表示或者,只要两个操作数中有一个是 True ,结果就为 True ,否则为 False ;

( 3 ) Not 表示求反,它是单目运算符,只要一个操作数,当操作数是 True 的时候,结果为 False ,当操作数为False 时,结果为 True 。

还有其他几个不太常用的逻辑运算符 : Xor异或 、 Eqv 等价 、 Imp 隐含

Page 42: 第 3 章 脚本语言 VBScript

42

逻辑运算符示例

源文件

显示结果比较运算符结果是一个逻辑量( true, false)例:执行完 a=5>3 And "a"<"c" 语句后, a 的值为:

true

Page 43: 第 3 章 脚本语言 VBScript

43

5. 运算符优先级 当表达式包含多个运算符时,将按预定顺序计算每

一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号 ( ) 中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算符优先级。

当表达式包含多种运算符时,顺序是 : 算术运算符连接运算符比较运算符逻辑运算符。

所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。算术运算符和逻辑运算符按下列表 3-8优先级进行处理:

43

Page 44: 第 3 章 脚本语言 VBScript

4444

3.4 VBScript控制语句 在前面用脚本语言编写的程序代码都是按书写的顺序执行,但是我们知道在很多情况下,语句的执行顺序是动态变化的,通常与语句在执行过程中所得到的数据结果有关联 例如,在成绩统计业务总,我们可能要根据成绩的分数段进行划分,并按照不同的分数段执行不同的任务。在这些情况下就需要改变程序的执行顺序,这些就是程序控制语句的功能

通常程序设计语言中的控制语句有两大类,就是条件语句和循环语句 .

Page 45: 第 3 章 脚本语言 VBScript

45

3.4.1 条件语句 If…Then…Else 语句用于判断条件是 True或 False ,然后根

据判断结果指定要运行的语句。 If 语句的几种形式:( 1 ) If 条件表达式 Then 程序语句 ‘ 单行结构 eg3-9.asp( 2 ) If 条件表达式 Then ‘多行结构

程序语句块 End If

( 3 ) If 条件表达式 Then ‘双分支程序语句块 1

Else程序语句块 2

End If( 4 ) If 条件表达式 1 Then ‘多分支 3-9.asp

程序语句块 1 eg3-10.html/asp ElseIf 条件表达式 2 Then

程序语句块 2 Else

程序语句块 N+1 End If

Page 46: 第 3 章 脚本语言 VBScript

46

IF 语句示例

源文件

显示结果

Page 47: 第 3 章 脚本语言 VBScript

47

2. Select Case 语句 Select Case 语句是 If…Then…Else…End If 语句多条件时的另外一种形式,适当使用,可以使程序更简洁方便。

Select Case 语句语法如下 :Select Case 变量或表达式

Case 结果 1程序语句块 1

Case 结果 2程序语句块 2

……Case 结果 N

程序语句块 NCase Else

程序语句块 N+1End Select

【 eg3-11.htm/3-10.asp 】利用 select case 语句编写一个能够判断当前日期为星期几

Page 48: 第 3 章 脚本语言 VBScript

48

Select 语句示例

源文件

显示结果

Page 49: 第 3 章 脚本语言 VBScript

49

3.4.2 循环语句 经常地,当编写代码时,我们希望将一段代码执行若干次。

我们可以在代码中使用循环语句来完成这项工作。循环语句分三类

在条件变为 false 之前重复执行语句。 在条件变为 true 之前重复执行语句。 按照指定的次数重复执行语句。

在 VBScript 中,我们可以使用四种循环语句: For...Next 语句:运行一段语句指定的次数; For Each...Next 语句:针对集合中的每个项目或者数组中的每个元素来运行某段语句;

Do...Loop 语句:运行循环,当条件为 true 或者直到条件为 true 时;

While...Wend 语句:当条件为 true 时循环。尽量不要使用这个语句 , 请使用 do...loop 语句代替它。

49

Page 50: 第 3 章 脚本语言 VBScript

50

1. For…Next循环 For…Next循环是一种强制型的循环。在循环的过

程中,可以指定循环的次数,当到达循环运行次数之后,即退出循环。 语法如下:

for 循环变量 counter=初值 to 终值 [step 步长 ] 语句序列 1 [exit for ] 语句序列 2next

Page 51: 第 3 章 脚本语言 VBScript

51

For Next 循环示例

源文件

显示结果

Page 52: 第 3 章 脚本语言 VBScript

5252

【 eg3-12.htm/3-11.asp 】设计一个能够选择一年的月份的选择框。

Page 53: 第 3 章 脚本语言 VBScript

53

2. For Each…Next 循环 For Each…Next 循环与 for……next循环类似,但 For Each In……Next 不是将语句块运行一定的次数,而是专门用来对集合中的每一项或数组中的每个元素重复执行一系列语句。是对数组和集合中的元素进行枚举(一一列举),当枚举结束后就会退出循环。在不知道集合或数组中的元素的个数时格外有用。其语句格式为:For Each 元素 In 集合或数组

程序语句块 Next

【 eg3-13.htm 】利用 For Each...Next 设计程序实现学生成绩等级判断。

Page 54: 第 3 章 脚本语言 VBScript

54

For Each…Next 示例源文件

显示结果

Page 55: 第 3 章 脚本语言 VBScript

55

3. Do…Loop 循环 Do…Loop 循环是当条件为 True 或条件变为 True 之前,

一直重复执行。 它的语法有如下几种形式 :( 1 ) Do While 条件表达式

程序语句块 Loop

( 2 ) Do程序语句块

Loop While 条件表达式( 3 ) Do Until 条件表达式

程序语句块 Loop

( 4 ) Do 程序语句块 Loop Until 条件表达式

Page 56: 第 3 章 脚本语言 VBScript

5656

( 1 ) Do While……Loop循环 Do While……Loop循环结构在进入循环前就检查条件是否成立。当条件为 true 时重复执行指定的若干条语句,直到条件变为 false 为止。格式为:

【例 eg3-14.asp 】利用 Do While……Loop 设计一个计数器。

3. Do...Loop 语句

Page 57: 第 3 章 脚本语言 VBScript

57

Do loop 循环示例

<% Option Explicit ' 强制声明变量 %> <html><body>

<% Dim lngSum,I 'lngSum 用来保存结果, I用来控制循环 lngSum=0 '给 lngSum 赋初值 I=1 Do While I<=100 '当 I 小于等于 100 时执行循环

lngSum=lngSum+I^2

I=I+1 'I 的值增加 1 Loop

Response.Write "1到 100 的平方和 =" & lngSum %>

</body> </html>

3-12.asp 计算 1到 100 的平方和

Page 58: 第 3 章 脚本语言 VBScript

5858

Do Until……Loop循环结构也是在循环开始时就检查循环是否成立,当条件为 False 时重复执行指定的若干语句,直到条件为True 为止。格式为:

【例 eg3-15.asp 】利用 Do Until……Loop 设计程序求 1 到 100的累加和。

( 2 ) Do Until……Loop循环

<% Option Explicit '强制声明变量 %> <html><title>do until...loop</title><body> <%

Dim Sum,m 'Sum 用来保存结果, m 用来控制循环Sum=0 '给 Sum 赋初值 m=0

Do until m=100 '当m 等于 100 时执行循环 m=m+1 'm 的值增加 1 Sum=Sum+mLoopResponse.Write "1到 100 的和 =" & Sum

%></body> </html>

Page 59: 第 3 章 脚本语言 VBScript

5959

Do ……Loop While结构首先执行一遍指定的语句块,之后再检查条件成立与否,当条件为 true 时反复执行,直到条件变为false 为止。其格式为:Do 语句块Loop While 条件

【例 eg3-16.asp 】利用 Do ……Loop While 设计程序求 1 到 100 的累加和。<% Option Explicit ' 强制声明变量 %> <html><body>

<%Dim Sum,m 'Sum 用来保存结果,m用来控制循环Sum=0 '给 Sum 赋初值 m=0Do

m=m+1 'm 的值增加 1Sum=Sum+m

Loop while m<100 '当m等于 100 时执行循环Response.Write "1到 100 的和 =" & Sum %>

</body> </html>

( 3 ) Do ……Loop While循环

Page 60: 第 3 章 脚本语言 VBScript

6060

( 4 ) Do……Loop Until 循环 Do……Loop Until 循环结构首先执行一遍指定的语

句序列,之后再检查条件成立与否,当条件为 false时反复执行,直到条件变为 true 为止。其格式为:Do 语句块Loop Until 条件

【例 eg3-17.asp 】利用 Do……Loop Until 设计程序求 1 到 100的累加和。 <% Dim Sum,m 'Sum 用来保存结果,m用来控制循环Sum=0 '给 Sum 赋初值 m=0Do

m=m+1 'm 的值增加 1Sum=Sum+m

Loop until m=100 '当m等于 100 时执行循环Response.Write "1到 100 的和 =" & Sum

%>

<% Dim Sum,m 'Sum 用来保存结果,m用来控制循环Sum=0 '给 Sum 赋初值 m=0Do

m=m+1 'm 的值增加 1Sum=Sum+m

Loop until m=100 '当m等于 100 时执行循环Response.Write "1到 100 的和 =" & Sum

%>

Page 61: 第 3 章 脚本语言 VBScript

61

使用 Exit 语句强行退出循环 一般情况下,都是满足循环结束条件后退出循环,但有时候需要强行退出循环。在 For…Next和 Do…Loop循环中,强行退出的语句分别是 Exit For和 Exit Do 。

Exit 语句也可以用来退出子程序和函数,语句分别为 Exit Sub和 Exit Function 。

不过 Exit 语句通常是和 If 语句结合使用的。例如:Sum=0

For I=1 to 100 lngSum=lngSum+I^2 '如果大于 10000 ,则强行退

出循环 If lngSum>10000 then Exit ForNext

Response.Write " 最后的结果是: " & lngSumEg3-18.asp 求 1+2+3+…+n 的第一个大于 1000 的和

<% Option Explicit ' 强制声明变量 %> <html><title>exit do</title><body> <% dim sum,m

Sum=0 '给 Sum 赋初值 m=1Do while m<100

Sum=Sum+mif sum>1000 then exit dom=m+1 'm 的值增加 1

LoopResponse.Write "1+2+3+…+" &m&" 时,第一个大于 1000 的和为 "&

Sum %></body> </html>

<% Option Explicit ' 强制声明变量 %> <html><title>exit do</title><body> <% dim sum,m

Sum=0 '给 Sum 赋初值 m=1Do while m<100

Sum=Sum+mif sum>1000 then exit dom=m+1 'm 的值增加 1

LoopResponse.Write "1+2+3+…+" &m&" 时,第一个大于 1000 的和为 "&

Sum %></body> </html>

Page 62: 第 3 章 脚本语言 VBScript

62

4. While…Wend 循环 While…Wend循环是当条件表达式值为 True 时,执行循环,否则跳出循环,与 Do…Loop循环非常相似。

语法如下:While 条件表达式

程序语句块Wend

将前面示例中的 Do…Loop循环语句替换为如下的语句,执行结果是一样的。

While I<=100 lngSum=lngSum+I^2 I=I+1

Wend 其含义是:只是条件式成立,就绕循环执行。而每循环一次,需重新判断条件式。

Page 63: 第 3 章 脚本语言 VBScript

6363

【例 eg3-19.asp 】求使用 while wend循环输出数据。<html><title>while wend</title><body>

<% i=1while i<=5

response.Write " 这是第 "& i &" 圈<p>" i=i+1

wend

%></body> </html>

4. While...Wend 语句

Page 64: 第 3 章 脚本语言 VBScript

64

5. 循环嵌套 允许的循环嵌套 不允许的循环交叉

Vbscript允许在一个循环结构的循环体内包含另一个循环语句结构,即允许循环嵌套而实现多重循环。【例 eg3-20.asp 】编程实现任何两个一位数相乘,并将结果保存在一个表格中。

Page 65: 第 3 章 脚本语言 VBScript

65

<html><title>循环嵌套</title><body>

<table border=1> <%

dim i,j,strfor i=1 to 9 str="<tr>" for j=1 to 9 str=str &"<td>"&i&"*"&j&"="&i*j&"</td>" next str=str&"</tr>" response.Write strnext

%></body> </html>

65

Page 66: 第 3 章 脚本语言 VBScript

66

例 3-15.asp :有 100 个人吃 100 个馒头,大人 1 人吃 4个,孩子 4 人吃 1 个,问有多少个大人和多少个孩子?(提示:使用嵌套循环和条件语句)

66

<html><head><title>大小和尚吃馒头问题</title>

</head><body> <%

Dim I,J,ren,mantouFor I=1 To 100 '大人从 1 到 100循环 For J=1 To 100 '小孩从 1 到 100循环

ren=I+J '计算总人数mantou=I*4+J*0.25 '计算总馒头数If ren=100 And mantou=100 Then Response.write"<br>大人=" & I & "&nbsp;小孩=" & JEnd If

NextNext %>

</body></html>

Page 67: 第 3 章 脚本语言 VBScript

67

3.5 过程与函数 过程是拥有一个名称并可作为单元来执行的

语句块。 利用函数可以方便地完成某些功能 ,但是有时需

要完成一些特殊的功能,此时没有现成的函数可用,就需要利用过程自己编制来函数。

在 VBScript 中,过程有两种 一种是 Sub子程序 一种是 Function 函数。

两者的区别在于: Sub子程序只执行程序而不返回值,而 Function 函数执行程序后会返回值。

Page 68: 第 3 章 脚本语言 VBScript

68

3.5.1 Sub 过程(子程序) Sub子程序的语法如下:

Sub 子程序名( [ 形式参数 1 ,形式参数 2 ,… ] )

……End Sub

调用子程序的两种方式:( 1 ) Call 过程名( [ 实际参数 1 ,实际参数 2 ,

… ] )( 2 )过程名 [ 实际参数 1 ,实际参数 2 ,… ]

Page 69: 第 3 章 脚本语言 VBScript

69

过程 程序示例

显示结果

<% Option Explicit ' 强制变量声明 %><html><body>

<%Dim intM,intN 'intM和 intN 为实际参数intM=3intN=4Call mySquare(intM,intN) ' 调用子程序,显示结果'下面是子程序,用来计算两个数的平方和Sub mySquare(intA,intB) 'intA和 intB 是形式参数

Dim lngSumlngSum=intA^2+intB^2 Response.Write "3和 4 的平方和是: " & lngSum

End Sub%>

</body></html>

例 3-5.asp

Page 70: 第 3 章 脚本语言 VBScript

70

3.5.2 函数

函数即 Function 过程,是包含在 Function和 End

Function 语句之间的一组 VBScript 语句。 Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。 Function 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。 Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。

Function 返回值的数据类型总是 Variant 。

70

Page 71: 第 3 章 脚本语言 VBScript

71

3.5.2 Function 函数 Function 函数的语法如下:

Function 函数名( [ 形式参数 1 ,形式参数 2 ,… ] )……

End Function 调用函数

变量 = Function 函数名(参数 1 ,参数 2 ,…) 函数可以向变量一样引用和参与运算

【例 eg3-21.asp 】编写两个数相加的子程序

Page 72: 第 3 章 脚本语言 VBScript

72

3.5.3 函数与过程调用1. 调用同一文件的过程

当函数与过程与被调用程序代码在一个文件中的调用方式可以有以下几种方式。

( 1 )直接调用方式 调用函数与过程时,直接输入过程名及所有参数值,参数值之间使用逗号分隔,参

数不用括号,是一种常用方式。语法格式为: name [argumentlist]

例如: my_sub x,y '直接调用 sub子程序 ,这种方法最常用。

( 2 ) Call 语句 另外一种调用方法,就是使用 Call 语句,但如果使用了 Call 语句,则必须将所

有参数包含在括号之中,语法格式: call name [( argumentlist) ]

例如: call my_sub(x,y) ' 使用 call 语句调用 sub子程序。 注意:使用 call 语句调用函数或内部函数时,函数返回值都会被丢弃。

( 3 )函数的调用 调用 function 过程时,函数名必须用在变量赋值语句的右端或表达式中。如:

Sum1=my_function1(3,9,5) '直接引用函数名进行调用 sum2=my_function2(3)+100

【例 3-22 】编程实现过程的定义与使用。 72

Page 73: 第 3 章 脚本语言 VBScript

7373

Page 74: 第 3 章 脚本语言 VBScript

7474

2 .调用外部文件的过程 当要调用外部文件的函数或过程时,可以使用

html 语言的注释标记 ,利用 #include 来进行调用,调用时注意路径的设置。

【例 eg3-23.asp 】编程实现调用另外一个文件中的过程。

<html><title>调用外部函数 </title><body> <%

function my_func(x,y) dim sum sum=x+y my_func=sum end function%>

</body></html>

<html><title>调用外部函数 </title><body> <%

function my_func(x,y) dim sum sum=x+y my_func=sum end function%>

</body></html>

<html><title>调用外部函数 </title><!--#include file="eg3-23_1.asp"--><body>

<% dim a,b,c a=5 b=6 c=my_func(a,b)response.Write "a+b="&c%>

</body></html>

<html><title>调用外部函数 </title><!--#include file="eg3-23_1.asp"--><body>

<% dim a,b,c a=5 b=6 c=my_func(a,b)response.Write "a+b="&c%>

</body></html>

Page 75: 第 3 章 脚本语言 VBScript

75

3.6 基本输入输出函数3.6.1 MsgBox 函数

功能:用来产生一个消息选择框,等待用户做出选择。 MsgBox 函数的语法如下:

MsgBox(prompt,[,title][,button] [,helpfile, context]) Prompt: 字符串表达式 , 显示在消息框中的字符串信息 ,其最大长度约 1024 字符

Tilte :字符串表达式,显示在消息框标题栏上的文字 Button :数字表达式,指定消息框的外框和按钮类型,默认 0 。 P/

101 Context :数字表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。

常用格式 :MsgBox (" 提示信息, [数值 ]") 【例 3-16.htm 】设计一个 MsgBox选择框,用于用户确认所选择的信息。

脚本程序代码如下:

75

<script language="vbscript"> dim cc cc=msgbox("您选择的是 A 类产品,确认购买吗? ",3)</script> ,

<script language="vbscript"> dim cc cc=msgbox("您选择的是 A 类产品,确认购买吗? ",3)</script> ,

Page 76: 第 3 章 脚本语言 VBScript

7676

3.6.2 InputBox函数 功能:用于产生一个接收用户输入信息的输

入框。并返回文本框的内容 InputBox 函数的语法如下:

String=InputBox(prompt[,title][,default] [,xpos] [,ypos] [,title] [,helpfile, context])

String: 字符串表达式,显示文本框中的内容,即用户输入信息

Xpos: 数字表达式,用于指定对话框的左边缘与屏幕左边缘的水平距离。若省略,则水平居中

Ypos: 数字表达式,垂直距离,省略距下边缘约 1/3 简单使用如: Inputbox(" 提示信息 ")

【例 3-17.html 】设计一个 InputBox 输入框,用于接收并判断用户输入的密码内容。 脚本程序代码如下:

<script language="vbscript">Dim aa password="123456"aa=inputbox("请输入密码 ") Do while aa<> password aa=inputbox("密码不正确 , 请重新输入 !")Loop document.write("密码正确,进入页面 !")

</script>

<script language="vbscript">Dim aa password="123456"aa=inputbox("请输入密码 ") Do while aa<> password aa=inputbox("密码不正确 , 请重新输入 !")Loop document.write("密码正确,进入页面 !")

</script>

Page 77: 第 3 章 脚本语言 VBScript

77

3.7 VBScript常用函数 所谓函数,指的是由若干语句组成的程序模

块,它可以实现一个特定的功能,并返回一个函数值。

函数分类: 内部函数即系统函数,如 Time( ).自定义函数:为了实现某个特定功能,自己编写

的程序模块。 使用函数时要特别注意函数参数的个数和类

型。

Page 78: 第 3 章 脚本语言 VBScript

78

3.7.1 数据类型 转换函数 VBScript 会自动转换数据子类型以满足计算的需求,但有

时候,也需要使用转换函数来强制转换数据子类型。 常用的转换函数 :

CStr(variant) :将数值表达式表示的数字转换成字符串 例如: Str(100) 结果为:“ 100”

CInt(variant) :转化为整数子类型 如: cint(“34”) 结果 34 CDate(variant) :转化为日期子类型 Asc(< 字符串表达式 >) :字符转换成字符代码。返回一个整

型数,代表字符串表达式表示的字符串首字母的字符代码。 例如: Asc("a") 结果为: 97(即小写字符 a的 ASCII码 )

Chr(< 字符代码 >): 字符代码转换成字符。返回指定的字符代码相关的字符。

例如: Chr(97) 结果为: a (即在 ASCII 码中的小写字符 a)

Page 79: 第 3 章 脚本语言 VBScript

79

转换函数示例( cstr)

源文件

显示结果

连接符连接字符串,数字作为字符连接须强制转换

Page 80: 第 3 章 脚本语言 VBScript

80

3.7.2 字符串函数( 1 )字符串长度检测 Len

格式: Len(字符串) 功能:返回字符串中的字符的个数。

例如: Len( " VBScript 函数 ") 结果为: 10

( 2 )截取字符串 左截取: Left ( 字符串 ,截取的个数 ) 右截取: Right(字符串 ,截取的个数)

指定位置截取: Mid(字符串 ,截取开始位置,截取个数)例如: Left( "VBScript 函数有哪些 ", 3 ) 结果为: VBS Right( "VBScript 函数有哪些 ", 3 ) 结果为:有哪些 Mid(“ VBScript 函数有哪些”, 5 ) 结果为: ript 函数有哪些 Mid( "VBScript 函数有哪些 ", 5 , 5 ) 结果为: ript 函

Page 81: 第 3 章 脚本语言 VBScript

81

( 3 )删除空格 左边空格: Lrtim( 字符串 ) 右边空格: Rtrim( 字符串 ) 两端空格: Trim( 字符串 )

例如: Lrtim(“ VBScript 函数 ”) 结果为:“ VBScript 函数 ” Rtrim(“ VBScript 函数 ”) 结果为:“ VBScript 函数” Trim(“ VBScript 函数 ”) 结果为:“ VBScript 函数”

( 4)大小写转换LCase(string)(大 小) 、 UCase(string) (小 大)

Replace(string, find, replacewith) 例: Replace(" abcdef ","c","") 是将字符 c替换为空

InStr(string1, string2) :返回字符串 1 在字符串 2 中的位置值

Page 82: 第 3 章 脚本语言 VBScript

82

字符串函数示例

源文件

显示结果

Page 83: 第 3 章 脚本语言 VBScript

83

关于字符串函数<%

C=left(“abcd”,2) ‘从左边开始取 2 个字符C=right(“abcd”,2) ‘从右边开始取 2 个字符C=len(“abcd”) ‘ 获取字符串的长度C=Trim(“abcd “) ‘去掉字符串两边的空格C=Rtrim(“abcd_ _”)去年字符串右边的空格C=split(“ab/cd/ef”,”/”) ‘拆分函数C=instr(“ab”,”ab”) ‘查找函数

%>组成一维数组: c(0)=“ab”,c(1)=“cd”,c(2)=“ef”

例: a=Trim(" vbscript") & Rtrim(" good") 语句后, a 的值:

"vbscript good"

Page 84: 第 3 章 脚本语言 VBScript

84

3.7.3 数学运算函数( 1 )取绝对值 Abs(x)

功能:返回 x 的绝对值。 例如: Abs(-3)=3

( 2 )取整 Int(x) , Fix(x) 功能:返回 x 的整数部分。若 x 为负数,则 Int返回小于或等于 x 的第一个负整数, Fix返回大于或等于 x 的第一个负整数。

例如: Int(4.8)=4 Fix(4.8)=4 Int(-4.8)=-5 Fix(-4.8)=-4

84

Page 85: 第 3 章 脚本语言 VBScript

85

3.7.3 数学运算函数( 3 )四舍五入

Round(表达式 [,小数位数 ] ) 功能:返回表达式按指定的小数位数进行四舍五入后

的结果,若缺省小数位数,则四舍五入为整数。 例如: Round(3.14159,2)=3.14

Round(3.14159)=3

( 4 )开平方 Sqr(x) 功能:返回 x 的平方根。要求 x 大于或等于 0

。 例如: Sqr(25)=5

Sqr(23)=4.79583152331272

85

Page 86: 第 3 章 脚本语言 VBScript

86

( 5 )计算数学表达式 Eval( 数学表达式 )功能:计算并返回指定数学表达式的值。

例如: Eval(15+28/4)=22

( 6 )随机数 Rnd[(x)] 功能:返回一个小于 1 但大于或等于 0 的随机数。若

x<0 ,则每次产生的随机数均相同;若 x>0 或缺省,则产生与上次不同的新随机数;若 x=0 ,则本次产生的随机数与上次产生的随机数相同。

例如: Rnd(-1)=.224007 Rnd(1)=3.584582E-02

86

Page 87: 第 3 章 脚本语言 VBScript

87

3.7.4 日期和时间函数( 1 )返回系统当前的日期及时间: Now()( 2 )返回系统当前的日期: Date()返回系统当前日期中的年份: Year(date)返回系统当前日期中的月份:Month(date)返回系统当前日期中的日期: Day(date)返回系统当前日期中的星期数:Weekday(date[,start])

( 3 )返回系统当前的时间: Time() 返回系统当前的时间中的小时数: Hour(time) 返回系统当前的时间中的分钟数: Minute(time) 返回系统当前的时间中的秒数: Second(time)

例如: Document.write(Date) 结果为: 2008-8-20 Document.write(Time) 结果为: 22:16:26 Document.write(Now) 结果为: 2008-8-20 22:16:26

【例】在页面中显示系统当前的时间。 脚本程序代码如下: <%=now%>

87

Page 88: 第 3 章 脚本语言 VBScript

88

日期函数示例 bc3-10.asp

源文件

显示结果

返回日期和时间函数 Now()

Page 89: 第 3 章 脚本语言 VBScript

89

3.7.5 检验函数 很多时候需要判断一个变量究竟是什么数据子类型 ,此时就需要用到检验函数。

常用的检验函数 IsNumeric(variant) : 如果可以转换为数值,则返回 True

IsDate(variant) : 如果可以转换为日期,则返回True

IsArray(variant) :如果是数组,则返回 True IsNull(variant) : 如果不包含任何有效数据,则返回 True

Page 90: 第 3 章 脚本语言 VBScript

90

数组函数 常用数组函数 :

UBound(arrayname[, dimension]) Split(string[, delimiter]) Join(arrayname [, delimiter]) Array(arglist)

Page 91: 第 3 章 脚本语言 VBScript

91

格式化函数 需要将数值或日期按指定的格式显示 ,此时

就需要用到格式化函数。 常用的格式化函数 :

FormatNumber(number [, decimal]) :返回格式化后的数值。如:FormatNumber(3.1415926,3),返回 3.141

FormatDateTime(Date[, namedFormat]) :返回格式化后的日期和时间字符串。 如FormatDateTime(#2008-9-28 12:39:32#,1) ,返回 "2008年 9 月 28日 "

Page 92: 第 3 章 脚本语言 VBScript

92

3.8 网页及浏览器对象 (补 ) 网页浏览器为 VBScript 脚本提供了一组可以被调用的对象集合,被称为脚本对象模型。 IE 浏览器的脚本对象模型是一种层次结构,如图所示。下图 IE 浏览器的脚本对象模型

Page 93: 第 3 章 脚本语言 VBScript

93

1 .Window 对象 window 对象表示浏览器中一个打开的窗口。通过引用该对

象的属性可以控制脚本中其他对象的属性,进而控制整个网页的外观以及对事件的响应。

使用 Window 对象可以获得当前窗口的状态信息、文档信息、浏览器的信息,还可以响应发生在 IE 中的事件。

window 对象常用的属性、方法和事件如下:( 1 ) Alert 方法

格式: alert("消息内容 ") 功能:用来产生一个弹出式的消息框,其图标为一个警告标识。

【例 3-18.html 】使用 alert 方法产生一个消息框。程序代码如下:<body onload="alert('欢迎访问本网站! ')">

( 2 ) Prompt 方法 格式: Prompt(" 提示信息 ") 功能:用来产生提示框。

例如: Prompt("请输入您的姓名: ")

<body onload="alert('欢迎访问本网站! ')"> <script language="vbscript"> document.write(Prompt("请输入您的姓名: ") ) </script>

Page 94: 第 3 章 脚本语言 VBScript

94

( 3 ) Open、 Colse 方法 Open 用来打开一个页面。 3-19.html Close 用来关闭一个页面。

例: <body onload=window.open ("http://www.sina.com","new", "width=280, height=120, status=yes")>

<a href="VBScript:window.close()"> 关闭本窗口</a

( 4 ) Status 属性 更改浏览器状态栏的文字。

例如: window.Status=“欢迎访问本网站!” ( 5 ) OnLoad、 OnUnload事件

OnLoad事件是在页面完全传递到浏览器时发生的事件, OnUnload事件

是当离开页面时发生的事件。 例如: <body onunload="alert('欢迎下次再访问本站! ')">

Page 95: 第 3 章 脚本语言 VBScript

95

2 . Document 对象 Document 对象代表了当前浏览器窗口中的 HTML 文档,

它是脚本对象模型中最为重要的对象。可以通过该对象检测HTML 文档中各元素的状态(比如,颜色、字体,发生的事件等),并且可以更改这些元素的状态。( 1 ) LastModified 属性

使用 lastModified 属性可以在页面上自动产生最后修改页面的日期。 例如: document. Write(document.lastmodified)

( 2 )write 方法和 writeln 方法 使用 Write 方法可以动态地在 HTML 文档中写入新的 HTML 代码,写

入的内容可以是 HTML 代码,即可以包含有 HTML 标记。 例如: document. Write("<font

color=´red´> 这是我做的网页 </font>") write 方法和 writeln 方法的区别在于writeln 方法在输出字符串末尾添

加了回车标志。( 3 ) document 对象的事件

Document 对象的事件中常见的有:click, dblclick、 keydown、 keypress、 keyup、mousedown、mouseover、mouseout、mouseup 等。

Page 96: 第 3 章 脚本语言 VBScript

96

思考题 VBScript 的事件过程的调用方式有哪几种 ? 编写一个事件过程实现两数相加 ,并通过按钮控件属性来调用该事件过程。参考例 3-5

完成网上作业题

Page 97: 第 3 章 脚本语言 VBScript

97

补充实验 100和尚吃 100个馒头 ( 大和尚每人 4只,小和尚 4人 1只 )

<% dim x,yFor x=0 to 25

for y=0 to 100if 4*x+0.25*y=100 and x+y=100 then

response.write “大和尚有:“ & x &” 个<br>”&”小和尚有:“ &y” 个 <br>

End ifNext y

Next x%>

100元买 100 只鸡

<% dim x,y,z ’百元买百鸡 (母鸡每只 3元,公鸡 2元,小鸡 0.5元 )

For x=0 to 33

for y=0 to 50

for z=0 to 100

if 3*x+2*y+0.25*z=100 and x+y+z=100 then

response.write “母鸡有:“ & x &”只 <br>公鸡有:“ &y”只 <br> ,小鸡有“ &z “只”End if

Next z

next y

Next x

%>