第1章 Web 程序设计基础

Download Report

Transcript 第1章 Web 程序设计基础

第3章 Web脚本语言VBScript
内容简介:
本章主要讲述了VBScript语言的用途;变量
命名、注释标签、、操作符、各种语句的使
用及常用函数;各种对象的属性和方法等。
第3章 Web脚本语言VBScript
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
VBScript语言概述
VBScript编程基础
VBScript程序流程控制
过程
常用内部函数
对象
数据有效性验证实例
ActiveX控件
3.1 VBScript语言概述
脚本语言出现以后,编写功能强大的
Web页面就不再是一件困难的事情了,
即使是初学者也能够十分方便地对Web
页面进行控制,轻松地构造具有交互性
的Web页面。
目前比较流行的脚本语言是VBScript、
JavaScript和Jscript。
3.1.1 VBScript语言的特点
1.什么是VBScript?
VBScript是Microsoft Visual Basic的简化版本。
VBScript是Visual Basic的子集
2.易学易用
VBScript能轻易地把数据,数字和货币数据格式
化。在Internet Explorer中事件控制很方便。
3.VBScript既可编写服务器脚本,也可编写客
户端脚本。
3.1.2 VBScript程序的编辑和调试——1
1.<SCRIPT>标签
一般形式:<SCRIPT>
VBScript代码
</SCRIPT>
注意:VBScript用句点在对象之间分层。
2.<SCRIPT>标签的LANGUAGE属性
<SCRIPT LANGUAGE="VBScript">
3.<SCRIPT>标签的RUNAT属性
指定包含在<SCRIPT>标签中的脚本代码运行于服务端还是客户端,使用
方式如下:(注意文件要保存成.asp)
<SCRIPT LANGUAGE="VBScript" Runat=server>
......
</script>
3.1.2 VBScript程序的编辑和调试——2
4.注释标签的运用
在加入了注释标签后,VBScript代码如下所示:
<SCRIPT LANGUAGE="VBScript">
<!-VBScript代码
-->
</SCRIPT>
在VBScript代码外部加上一个注释标签。对于不能支持VBScript的
浏览器来说,VBScript代码是包含于注释之中的,所以不会显示
到页面上,而<SCRIPT>标签和</SCRIPT>标签是不能识别的标签,
也将被忽略,所以,在这种情况下,不会对页面的布局产生破坏
作 用 。而支持 VBScript 的浏览器却能正确识别位于注释中的
VBScript代码,从而加以解释执行。
3.1.2 VBScript程序的编辑和调试——3
5.简单的VBScript示例(1)
<HTML><HEAD><TITLE>一个 VBScript 示例
</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!-Window.Document.Write("这是一个VBScript的
简单示例")
-->
</SCRIPT></HEAD><BODY></BODY></HTML>
3.1.2 VBScript程序的编辑和调试——4
5.简单的VBScript示例(2)
<FORM>
<INPUT TYPE="button" VALUE="ALERT"
OnClick="alerter()">
</FORM></BODY></HTML>
<SCRIPT LANGUAGE="VBScript">
<!-sub alerter()
Window.alert("这是一个VBScript的简单示例")
End sub
-->
</SCRIPT>
3.1.2 VBScript程序的编辑和调试——5
6.下载时运行VBScript代码的位置
先直接在页面中写上表格的标签,然后运用VBScript代码在表格内写
字符串。我们可以将VBScript代码嵌入到标签<TD>和<TD>之间
<HTML><HEAD><TITLE>一个VBScript的简单示例
</TITLE></HEAD><BODY>
<TABLE><TR><TD>
<SCRIPT LANGUAGE="VBScript">
<!-Window.Document.Write("这是一个VBScript的简单示例")
-->
</SCRIPT>
</TD></TR></TABLE></BODY></HTML>
如果希望VBScript代码是在页面下载后立即执行,一般应将VBScript代
码嵌入到页面的合适的位置。如果需要包含于页面元素之内,则应该将
代码嵌入到相应的标签之内,如果希望VBScript代码运行结果处于页面
的最上部,一般应该将代码放在<HEAD>标签和</HEAD>标签之间,并
且不用函数或过程。
3.1.2 VBScript程序的编辑和调试——6
7.调用时运行VBScript代码的位置
一般情况下,我们最好是将VBScript代码放在<HEAD>标签和</HEAD>标签之间,
<HTML><HEAD><TITLE>一个 VBScript 示例</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!-sub alerter()
Window.alert ("这是一个VBScript的简单示例")
End sub
-->
</SCRIPT></HEAD><BODY><FORM>
<INPUT TYPE="button" VALUE="ALERT" OnClick="alerter()">
</FORM></BODY></HTML>
还有一种嵌入的方法,就是在页面元素事件处理中直接嵌入VBScript代码
<INPUT TYPE="button" VALUE="ALERT"
OnClick="Window.alert('这是一个VBScript的简单示例')">
这样,在鼠标单击这个按钮时,可以直接调用alert()方法弹出警告框,而不必
编写VBScript的函数或过程。这种方法简洁明了,但是,一般只适用于在其中
嵌入少量VBScript代码的页面,如果VBScript代码数量增大,会使得
代码的可读性变得极差。
3.1.2 VBScript程序的编辑和调试——7
8.客户端脚本代码示例
客户端脚本由浏览器处理,必须把脚本代码用<SCRIPT></SCRIPT>标记嵌入
到HTML页面中去,仅嵌入客户端脚
If IsNumeric(frmTmp.Text1.Value) Then
本的网页可直接双击运行。
If frmTmp.Text1.Value <1 Or
<HTML><HEAD><TITLE>简单的
frmTmp.Text1.Value> 50 Then
VBScript程序</TITLE>
MsgBox"请输入1到50之间的数字!"
<SCRIPT LANGUAGE=VBScript>
Else
<!-frmTmp.Submit
Sub Button1_OnClick()
End If
Dim frmTmp '声明一个变量
Else
Set frmTmp =
MsgBox"请输入数字!"
Document.Form1
End IF
End Sub
-->
</SCRIPT>
</HEAD>
<BODY bgColor="White">
<H2>请输入1到50之间的数字:</H2><HR>
<form name="Form1">
<INPUT Name="Text1" TYPE="TEXT">
<INPUT Name="Button1"
TYPE="BUTTON" VALUE="提交">
</FORM></BODY></HTML>
3.1.2 VBScript程序的编辑和调试——8
9.服务器脚本与示例(1)
在ASP中,服务器脚本要用ASP分隔符<%和%>括起,
或者在<SCRIPT></SCRIPT>标记中用RUNAT=Server
表示脚本在服务器端执行。并要保存为.asp扩展
名,.asp网页不能直接双击运行,要在浏览器中输入相
应的URL(不是物理路径)才能运行。
注意:编写服务端脚本时不必再加注释标签,因为服务
器必须能解释脚本,否则会引起错误。VBScript中的
MsgBox和InputBox不能在服务端脚本中使用。MsgBox
用于显示一个信息框,而InputBox用于产生一个输入框。
信息框和输入框都是用户界面元素,不能在服务器端执
行。
3.1.2 VBScript程序的编辑和调试——9
9.服务器脚本与示例(2)
例如,下面的VBscript脚本在一个ASP网页
中自动执行:
<% FOR myvar=1 TO 500%>
<B> Hello World!</B><BR>
图3-4 用VBScript来创建
<% NEXT %>
3.1.2 VBScript程序的编辑和调试——10
9.服务器脚本与示例(3)
在ASP中除了用<%=和%>输出数据外,还经常用ASP的
Response对象来输出数据。以下写一个简单用ASP的
Response对象进行输出的服务端脚本示例:
<% Response.Write "<table width=300><tr><td
width=50>姓名"
Response.Write "<td width=50>性别<td width=200>班
级"
Response.Write "<tr><td>张三<td>男<td>电子商务01"
Response.Write "<tr><td>李四<td>女<td>电子商务02"
Response.Write "</tr></table>"
%>
例3-10 用ASP的Response对象来输出数据
3.1.2 VBScript程序的编辑和调试——11
10.服务端脚本与与客户脚端本的混合
对客户端脚本进行操作的服务端脚本示例:
<%@ Language=VBScript %>
<% Option Explicit
DIM
dtmTime,strservername,strserversoftw
are,intgreeting
dtmTime=Time()
strservername=Request.ServerVariables("s
erver_name")
strserversoftware=Request.ServerVariable
s("server_software")
randomize
intgreeting=int( rnd * 3 )
%>
<SCRIPT LANGUAGE=VBScript>
<!-showIntroMsg()
function showIntroMsg()
select case (<% =intgreeting %>)
case 0
msg="当前WEB服务器是<%
=strservername %>!"
case 1
msg="当前时间是<%
=dtmTime %>!"
case 2
msg="服务器正在运行<%
=strserversoftware %>!"
End select
Document.Write(msg)
End function
-->
</SCRIPT>
3.2 VBScript编程基础
3.2.1 数据类型
1.什么是 VBScript 数据类型?
VBScript 只有一种数据类型,称Variant。
2.Variant子类型
除简单数字或字符串以外,Variant可以进一步区分数值信息
的特定含义。例如使用数值信息表示日期或时间。此类数据
在与其他日期或时间数据一起使用时,结果也总是表示为日
期或时间。当然,从Boolean值到浮点数,数值信息是多种
多样的。Variant包含的数值信息类型称为子类型。大多数
情况下,可将所需的数据放进Variant中,而Variant也会
按照最适用于其包含的数据的方式进行操作。
3.2.2 常量和变量——1
1.什么是常量
常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。
VBScript定
义了许多固有常数。
2.声明常量
使用Const语句可以在VBScript中创建用户自定义常数。例如:
<% Const MyString = "这是一个字符串。"
Const MyAge = 49 %>
请注意字符串文字包含在两个引号(“”)之间。这是区分字符串型常数和数值
型常数的最明显的方法。日期文字和时间文字包含在两个井号(#)之间。
例如: <% Const CutoffDate = #6-1-03# %>
可以一次定义多个常量,只要把每个常量定义用逗号隔开即可。
3.VBScript变量
变量是计算机内存中已命名的内存位置,该位置可存储脚本
运行时能更改的信息。
3.2.2 常量和变量——2
4.声明变量
在VBscript脚本中,使用一个变量之前不需要专门声明它。例如(隐式声明变量)
<HTML><HEAD>
<TITLE>
sample VBScript
</TITLE></HEAD>
<BODY>
<% myvar="你好,欢迎光临!"%>
<%=myvar%>
</BODY></HTML>
VBScript中提供了Option Explicit语句来强制显式声明变量,这样如果你在编写长
而复杂的程序时,如果敲错了变量的名字,将会产生错误,可以帮助调试脚本。
<%Option Explicit %>
<% DIM myvar
myvar=" 你好,欢迎光临!" %>
<%=myvar%>
3.2.2 常量和变量——3
5.给变量赋值
创建如下形式的表达式给变量赋值:变量在表达式左边,要赋
的值在表达式右边。例如:
B = 200
6.变量命名规则
变量命名必须遵循VBScript的标准命名规则。变量命名必须遵
循:
(1)第一个字符必须是字母。
(2)不能包含嵌入的句点。
(3)长度不能超过255个字符。
(4)在被声明的作用域内必须唯一。
(5)不能使用VBScript中的保留字作为变量名。
在VBScript中给变量命名不区分大小写。命名变
量时,为便于记忆与使用最好能做到“顾名知
义”。
3.2.2 常量和变量——4
7.变量的作用域与存活期
• 在函数外部声明的变量称为脚本级变量或全局变量,
即在同一页内的任何脚本命令均可访问和修改该变
量的值。局部变量和全局变量可以重名。
• 变量存在的时间称为存活期。Script级变量的存活
期从被声明的一刻起,直到脚本运行结束。对于过
程级变量,其存活期仅是该过程运行的时间,该过
程结束后,变量随之消失。在执行过程时,局部变
量是理想的临时存储空间。可以在不同过程中使用
同名的局部变量,这是因为每个局部变量只被声明
它的过程识别。
3.2.2 常量和变量——5
8.注释VBScript脚本
注释的语法是:
Rem comment
或
' comment
comment 参数是需要包含的注释文本。
9.VBScript脚本中的续行符
在VBScript脚本中当一行写得很长时,程序的可读
性会变得很差,如果从语法上没法换行,而我们又
想换行时可使用续行符,续行符是空格紧跟一个下
划线(“ _”)。
注意:一定不要忘记前面的空格。
3.2.3 运算符和表达式——1
1.算术运算符
(1)^ (幂运算符)
(2)*(乘操作符)
(3)+(加操作符)
(4)-(减操作符)
(5)/(除操作符)
(6)\(整除操作符)
(7)mod(取模操作符)
2.连接运算符
(1)+(加操作符)
(2)&(连接运算符 )
注意:+运算符也能进行字符串的
连接,但只能将两个字符串连
接。 &运算符能强制性地将两
个表达式(不论是什么类型)
做字符串连接。
3.比较操作符
(1)=(等于操作符)
(2)<>(不等操作符)
(3)>(大于操作符)
(4)<(小于操作符)
(5)>=(大于等于操作符)
(6)<=(小于等于操作符)
注意:除了数值类型之外,字符串
类型也可以进行比较,在比较字符串
的过程中,VBScript把字符串中的
每个字母转换成相应的ASCII码值,
然后从第一个字符开始比较两个字符
串中相应的字符,比较它们的
ASCII码值。
3.2.3 运算符和表达式——2
4.逻辑运算符
(1)and(与操作符)
(2)or(或操作符)
(3)not(非操作符)
(4)Xor操作符
(5)Eqv 操作符:result =
expression1 Eqv expression2
(5)Eqv 操作符:也可用于字节位的比较,
当两个表达式在相应的位上的值相等时,
返回值为True。
(6)Imp操作符:result = expression1
Imp expression2 执行逻辑蕴涵运算。
如果 expression1
为
且 expression2 为
则 result 为
True
True
True
True
False
False
False
True
True
False
False
True
3.2.3 运算符和表达式——3
5.运算符优先级
算术运算符
比较运算符
逻辑运算符
描述
符号
描述
符号
描述
符号
求幂
^
等于
=
逻辑非
Not
负号
-
不等于
<>
逻辑与
And
乘
*
小于
<
逻辑或
Or
除
/
大于
>
逻辑异或
Xor
整除
\
小于等于
<=
逻辑等价
Eqv
求余
Mod
大于等于
>=
逻辑隐含
Imp
对象引用比较
Is
加
+
减
-
字符串连接
&
3.2.4 数组——1
1.标量变量和数组变量
多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,
将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量(即具有相同名子
不同下标值的一组变量),称为数组变量。
2.声明固定数组
数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有
括号()。与前面讨论的变量不同,数组在使用之前必须声明。
注意:VBScript中数组的下标从0开始,因此每个数组的元素个数都比声明语句中的数字多
在VBScript中对数组的每个元素都要分配空间,不要不切实际地声明太大的数组。
3.数组元素赋值
在数组中使用索引为数组的每个元素赋值。从0到10,将数据赋给数组的元素,如下所示:
A(0) = 256
A(1) = 324
A(2) = 100
...
A(10) = 55
3.2.4 数组——2
4.数组元素引用
使用索引可以得到所需的数组元素的数据。例如:
SomeVariable = A(8)
又如,你可以创建一个数组,用来存储你的站点上出售的一系列商品:
<% DIM Product(10)
Product(0)=”Trading Card”
Product(1)=”Book on Active Sever Pages”
Producr(2)=”Computer Monitor” %>
5.声明多维数组可以创建有多个下标的数组即多维数组。例:
<% DIM Product(10,1)
Product(0,0)= "Trading Card"
Product(0,1)= "A very valuable trading card. "
Product(1,0)= "Book on Active Sever Pages"
Product(1,1)= "A comprehensive book on Active Sever Pages"
Product(2,0)= "computer Monitor"
Product(2,1)= "This monitor is in excellent shape. " %>
要创建一个多维数组,只要简单地在数组声明语句中增加一个维
数即可。象这样:DIM Product(10,10,10,10)
3.2.4 数组——3
6.声明动态数组
• 动态数组是运行时可以改变大小的数组。
• 当声明一个动态数组时,你不需要指定数组的大小与维数,
只需在数组名后加一对空括号。但在第一次给一个动态数组
分配数值之前,必须用Redim语句指定它的大小与维数。
<% DIM Product()
Redim Product(2)
Product(0)= "Trading Card"
Product(1)= "Book on Active Sever Pages"
Product(2)= "Computer Monitor"
Redim Preserve Product(3)
Product(3)= "Coffee Cup" %>
3.2.4 数组——4
7.数组函数
(1)UBound()函数
UBound()返回一个数组的大小。确切地说,它可以返回数组的某一维的大小。
注意:虽然数组的某一维的第一个下标值总是0,但其第一维总是用1表示。
(2)Erase语句
VBScript有一个Erase语句,可以用来操作固定大小的数组和动态数组。通过
对一个静态数组使用Erase语句,你可以清除这个数组。如果该数组是一个字符
串数组,Erase语句把该数组的所有元素重新初始化为空字符串“”。如果该数
组是一个数值数组,Erase语句可以把该数组的所有元素重新初始化为0。
(3)ISArray()函数
函数ISArray()可以用来测试一个变量表达式是否是一个数组。
(4)Join()函数
语法形式:Join(list[,delimiter])
返回一个字符串,此字符串由包含在数组中的许多子字符串联接创建。
参数:list必选项。包含要联接的子字符串一维数组。
Delimiter可选项。在返回字符串中用于分隔子字符串的字符。
3.3 VBScript程序流程控制
3.3.1 条件控制语句_1
1.使用 If...Then...Else 进行判断
(1)只有一个条件语句形式:
第一种形式是单行语句形式:
If 条件表达式 then 程序块
第二种形式是块形式:
If 条件表达式 then
语句块
End If
(2)条件为 True 和 False 时分别运
行某些语句
If条件表达式then
语句块1
else
语句块2
End If
(3)If判断结构嵌套使用
If条件表达式0 then
If条件表达式1 then
语句块1
else
语句块2
End If
else
语句块3
End If (4)elseIf结构
If条件表达式1 then
语句块1
elseIf条件表达式2 then
语句块2
elseIf条件表达式3 then
语句块3
elseIf条件表达式n then
语句块n
else
语句块n+1
End If
3.3.1 条件控制语句_2
2.使用 Select Case 进行判断
Select Case语句的一般格式为:
Select Case 测试表达式
Case 表达式列表1
[语句块1]
[Case 表达式列表达2
[语句块2]]
……
[Case Else表达式列表n
[语句块n]]
End Select
3.3.2 循环控制语句——1
循环可分为三类:
• 在条件变为 False 之前重复执行语
句
• 在条件变为 True 之前重复执行语
句
• 按照指定的次数重复执行语句。
1.Do...Loop 循环
第一种语法形式是先判断循环
条件
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
可以使用 Do...Loop 语句多次(次
第二种语法形式是先执行一次
数不定)运行语句块。当条件
循环,再判断循环条件
为 True 时或条件变为 True 之前,
Do
重复执行语句块。
[statements]
Do...Loop 语句形式: [Exit Do]
(如右)
[statements]
Loop [{While | Until} condition]
3.3.2 循环控制语句——2
2.While...Wend循环
• While...Wend 语句当指定的
条件为 True 时,执行语句。
语法形式:
While condition
[statements]
Wend3.使用For...Next
• For...Next语句是以指定次数
重复执行一组语句。
一般形式:
For counter = start To end
[Step step]
[statements]
[Exit For]
[statements]
Next
例:
<script language=VBScript>
Sub MyProc(intNum)
Document.Write intNum &
"<BR>"
End Sub
Dim x
For x = 1 To 50
MyProc x
Next
</script>
3.3.2 循环控制语句——3
4.使用 For Each...Next
For Each...Next 循环与 For...Next 循环类似。
For Each...Next不是将语句运行指定的次数,而是
对于数组中的每个元素或对象集合中的每一项重复
一组语句。这在不知道集合中元素的数目时非常有
用。
For Each...Next 语句的一般形式如下:
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
3.3.2 循环控制语句——4
5.On Error 语句
语法形式:On Error Resume Next
当一个错误发生时,这条语句就执行紧靠发生错误语句后面的
语句,或者执行紧靠调用进程后面的语句。
Sub cmdSubmit_OnClick
On Error Resume Next
Myvar="aaa"+30
'显示引起错误的描述
If Err <> 0 Then
Msgbox "An error occurred. " & Err.Description
Err.Clear
End if
End Sub
3.4过程
3.4.1 Sub过程
1.Sub过程:声明Sub过程的名称、参数以及构成其主体的代码。
Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
注意:过程可以使用没有在过程内显式声明的变量,但只要有任何script级定义
的名称与之同名,就会产生名称冲突。如果过程中引用的未声明的变量与其他
的过程、常数或变量的名称相同,则会认为过程引用的是脚本级的名称。要避
免这类冲突,请使用Option Explicit语句可强制显式声明变量。
2.Call语句:将控制权传递给Sub或Function过程。
[Call] name [argumentlist]
注意:在调用过程时,不必使用Call关键字。然而,如果使用Call关键字调用要
求参数的过程,则必须用括号将argumentlist括起来。如果省略Call关键字,那
么必须也同时省略argumentlist参数两边的括号。使用Call语法调
用内部函数或使用用户自定义函数,函数返回值都会被放弃。
3.4.2 Function 过程
声明Function过程的名称、参数以及构成其主体的
代码,其一般语句形式是:
Function name [( arglist)]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
3.5 常用内部函数
3.5.1 输入、输出函数
(1)InputBox函数
语法形式是:
InputBox(prompt[,title][,default][,xpos][,ypos][
,helpfile,context])
(2)MsgBox函数
在对话框中显示消息,等待用户单击按钮,并返回
一个值指示用户单击的按钮。
MsgBox(prompt[,buttons][,title]
[,helpfile,context])
3.5.2 字符串函数——1
(1)Left函数
语法形式:Left(string,length)
返回包含字符串中从左边算起指定数量的字符。
(2)Right函数
语法形式:Right(string,length)
返回包含从字符串右边取出的指定数量的字符。
(3)Mid函数
语法形式:Mid(string,start[,length])
返回包含字符串中指定数量的字符。
(4)Space函数
语法形式:Space(number)
返回特定数目的空格。
3.5.2 字符串函数——2
(5)LTrim、RTrim与Trim函数
语法形式:LTrim(string)、RTrim(string)、Trim(string)
返回包含指定字符串的拷贝,没有前导空白(LTrim)、尾随空白(RTrim)
或前导和尾随空白(Trim)。
(6)InStr函数
语法形式:InStr([start,]string1,string2[,compare])
返回一指定字符串在另一字符串中最先出现的位置。
(7)LCase函数
语法形式:LCase(string)
返回转成小写的String。
(8)UCase函数
语法形式:UCase(string)
返回转成大写的String。
(9)Len函数
语法形式:Len(string|varname)
返回包含字符串内字符的数目,或是存储一变量所需的字节数。
3.5.2 字符串函数——3
(10)Chr函数
语法形式:Chr(charcode)
返回ASCII码表与charcode对应的字符。
(11)Asc函数
语法形式:Asc(string)
返回一个代表字符串中首字母的字符ASCII码。
(12)Split函数:
语法形式:Split(expression[,delimiter[,count[,start]]])
返回下标从0开始的一维数组,包含指定数目的子字符串。
(13)Replace函数
返回字符串,其中指定数目的某子字符串被替换为另一个子字
符串。语法形式:
Replace(expression,find,replacewith
[,compare[,count[,start]]])
3.5.2 字符串函数——4
(14)StrComp函数
语法形式:StrComp(string1, string2[, compare])
返回一个表明字符串比较结果的值。
(15)String函数
语法形式:String(number,character)
返回Variant(String),包含指定长度重复字符的字符串。
(16)Filter函数
Filter函数功能是过滤一个字符串数组,返回符合条件的子
集合数组。
语法形式:
Filter(InputStrings,Value[,Include[,Compare]])
(17)StrReverse函数
语法形式:StrReverse(string1)
返回一个字符串,其中一个指定子字符串的字符顺序是反向
的。
3.5.3 日期函数——1
名称
语法
功能
例句
Cdate
CDate(Date)
返回Date类型的表达式,
Date参数是任意有效的
日期或字符串表达式。
MyDate = "October 19, 1962"
MyShortDate = CDate(MyDate)
Date
Date
返回当前系统日期。
MyDate = Date
DateAdd
DateAdd(interval,
number, Date)
返回已添加指定时间间隔
的日期。
下例将95年1月31日加上一个月:
NewDate=
DateAdd("m",1,"31-Jan-95")
DateDiff
DateDiff(interval,D 返回两个日期之间的时间
ate1,Date2)
间隔。
DatePart
DatePart(interval,D
ate)
返回给定日期的指定部分。
GetQuarter=
参考interval参数的可选
DatePart("q",TheDate)
值。
DateSerial
DateSerial(year,mo
nth,Day)
对于指定的年、月、日,
返回Date子类型的
Variant。
MyDate2=
DateSerial(1990-10,8-2,1)
DateValue
DateValue(Date)
返回Date子类型的变量。
Date参数应是字符串。
DateValue("September11,1963")
Day(Date)
MyDay=
返回1到31之间的一个整数,
Day("October 19,1962")'MyDay=19
代表某月中的一天。
。
Day
theDate ="31-Jan-95"
xx=DateDiff("d",theDate,Now)
3.5.3 日期函数——2
返回0到23之间的一个整
MyTime=Now
数,代表某小时数。
MyHour=Hour(MyTime)
Time参数是时间表达式。
Hour
Hour(Time)
IsDate
返回Boolean值指明某表
达式是否可以转换为日
期。expression参数可以
IsDate(expression)
是任意可被识别为日期
和时间的日期表达式或
字符串表达式。
Minute
Minute(Time)
返回0到59之间的整数,
代表分钟。
MyVar=Minute(Now)'=41
Month
Month(Date)
返回1到12之间的一个整
数,代表某月份数。
MyVar=Minute("October 19,
1962")
'MyVar=10
MonthNam
e
MonthName(mon
th)
返回表明指定月份的字
符串。month是数值
thismanth=MonthName(10)'
’thismanth="October"
Now
Now
返回系统的当前日期和
时间值。
Today=Now
'today="02-07-04 11:41:14"
MyDate="October 19,1962"
YourDate= #10/19/62#
NoDate="Hello"
MyCheck=IsDate(MyDate)'True
MyCheck=IsDate(YourDate)'True
MyCheck=IsDate(NoDate)'False
3.5.4 转换函数——1
函数
功能说明与使用举例
Asc函数
返回与字符串的第一个字母对应的ANSI字符代码。
Dim MyNumber
MyNumber=Asc("A")'返回65。
MyNumber=Asc("a")'返回97。
MyNumber=Asc("Apple")'返回65。
CBool函数
返回表达式,此表达式已转换为Boolean子类型的Variant。
Dim A, B, Ch
A=5:B=5 ' 初始化变量。
Ch=CBool(A=B) 'Ch为True。
CByte函数
返回表达式,此表达式已被转换为Byte子类型的Variant。
Dim MyDouble, MyByte
MyDouble=125.5678
' MyDouble是一个双精度值。
MyByte=CByte(MyDouble) ' MyByte包含126。
CCur函数
返回表达式,此表达式已被转换为Currency子类型的Variant。
Dim MyDouble,MyCurr
MyDouble=543.214588
' MyDouble 是双精度的。
MyCurr=CCur(MyDouble*2) '把 MyDouble*2(1086.429176)的结
果转换为
'Currency(1086.4292)。
3.5.4 转换函数——2
CDate函数
返回表达式,此表达式已被转换为Date子类型的Variant。
MyTime="4:35:47 PM"
' 定义时间。
MyShortTime=CDate(MyTime) ' 转换为日期数据类型。
CDbl函数
Chr函数
返回与指定的ANSI字符代码相对应的字符。
Dim MyChar
MyChar=Chr(65) '返回 A。
MyChar=Chr(97) '返回 a。
MyChar=Chr(62) '返回 >。
MyChar=Chr(37) '返回 %。
CInt函数
IntX= "35.5 " : Cint(IntX) '返回36。
CLng函数
IntX= "35500000 " : CLng(IntX) '返回35500000
CSng函数
VarX= "35500000.123456 " : CSng(VarX) '返回35500000.123456
CStr函数
VarX= 35500000 : CStr(VarX) '返回" 35500000"
Hex函数
返回表示十六进制数字值的字符串。
Dim MyHex
MyHex=Hex(5) ' 返回5。
MyHex=Hex(10) ' 返回A。
MyHex=Hex(459) ' 返回 1CB。
Oct 函数
返回表示数字八进制值的字符串。
Dim MyOct
MyOct = Oct(4) ' 返回 4。
MyOct = Oct(8) ' 返回 10。
MyOct = Oct(459) ' 返回 713。
3.5.5 VBScript中的几个数学函数
函数ABS(number)返回一个绝对值。
函数INT(number)四舍五入后最接近的整数。
函数FIX(number)也返回最接近的整数,不过这个函
数对复数是向下舍入而不是向上舍入。
函数Round(number)允许你指定舍入后小数部分的位
数。
函数SGN(number)返回1,0,或-1,分别对应其参
数是正数,零,或复数。
函数Rnd([number])产生一个0~1之间的随机数。
3.6 对象
3.6.1 文档对象模型(DOM)
3.6.2 Windows对象
1.Window对象的属性
(1)Closed、Opener属性
Closed属性可以判断一个窗口是否被关闭;Opener属性可以通过一个窗口来操纵其父窗口。
(2)defaultStatus、status属性
defaultStartus属性的值是在浏览器窗口下面的状态栏中缺省显示的信息,status属性的值
是状态栏中当前显示的信息。
(3)Document、History、Location属性
Document属性、History属性、Location属性就是浏览器对象中的Document对象、History
对象、Location对象,
2.Window对象的方法
(1)Open(页面地址,窗口名称,窗口风格)和Close()方法
Open()方法能够打开一个窗口,并且,在打开窗口的时候,还能够指定窗口的风格,
Open()方法返回的是窗口的引用,它有3个参数:页面地址、窗口名称和窗口风格。
Close()方法可以自动关闭一个窗口,
(2)alert(字符串)
alert()方法的功能是弹出一个警告框,在警告框内显示字符串文本,
3.Window对象的事件
Window对象的事件有9种,较常用的有OnLoad、OnUnLoad、OnFocus、OnScroll。
3.6.3 Document对象
1.Document对象的属性
(1)alinkColor、vlinkColor、bgColor、fgColor和linkColor属性
这些属性是页面的颜色设置。
(2)Title属性
Title属性中存储的是页面的标题,就是在<TITLE>标签中所定义的标题。
(3)anchors、applets、forms、images、frames属性
这些属性中存放着对象的数组。
2.Document对象的方法
(1)Write()方法
Write()方法的功能就是向页面内写入文本或者标签。
(2)Open()和Close()方法
Open()方法的功能就是打开一个新文档,而Close()方法的功能就是关闭当
前文档。
3.6.4 History对象
1.History对象的属性
• Navigator浏览器和IE浏览器对于History对象的
属性不完全兼容,它们有一个相同的属性
──length 属性,在length属性中记录当前浏览器
访问历史记录的数量,例如,我们可
2.History对象的方法
• History对象的back()方法可以载入历史记录中前
一个历史记录的URL地址,forward() 方法可以载
入历史记录中下一个历史记录的URL地址,go()方
法可以载入历史记录中任何 一个历史记录的URL
地址。
3.6.5 Navigator对象
(1)appName属性
通过Navigator对象的appName属性可以获得浏览器的名称。
(2)appCodeName属性
通过appCodeName属性可以获得浏览器代码名称。
(3)appVersion属性
通过appVersion属性可以获得浏览器的版本信息以及浏览器
运行平台 的信息
(4)userAgent属性
在HTTP协议中,客户端向服务器端请求时,会发出一段
USER-AGENT信息,Navigator对象的userAgent属性值
就是USER-AGENT信息。
3.6.6 Form对象
一个表单隶属于一个文档,对于表单对象的引用可以通过
使用隶属文档的表单数组进行引用,即使在只有一个表单
的文档中,表单也是一个数组的元素,其引用形式如下:
Document.forms(0)
注意:表单数组引用是采用form的复数形式forms,数组的
下标总是从0开始。在对表单命名后,也可以简单地通过名
称进行引用
方法共有2种情况。
(1)reset()
reset()方法将表单中所有元素值重新设置为缺省状态。
(2)submit()
submit()方法将表单数据发送给服务器的ASP程序处理,如果
在表单中定义了Submit按钮,则submit()方法执行后的效
果与单击Submit按钮效果是相同的。
3.6.7 文本框对象
1.文本框对象的属性、方法和事件
2.属性:defaultValue、form、name、type、value
3.方法
(1)blur():blur()方法可以释放表单元素的输入焦点。
(2)focus():focus()方法使得表单元素获得输入焦点
(3)select():select()方法使得文本框中文本被选中。
4.事件
(1)OnBlur:在文本框失去焦点时,触发之。
(2)OnChange:只有当用户修改了文本框中的文本,然后失去焦点后才触发。
(3)OnFocus:当文本框得到焦点时,触发OnFocus事件。
(4)OnSelect:当文本框中文本被选定时,触发OnSelect事件。
(5)OnKeyDown:文本框在获得焦点的状态下,用户按下一个键时触发OnKeyDown事件。
(6)OnKeyUp:文本框在获得焦点的状态下,用户松开一个键时触发OnKeyup事件。
(7)OnKeyPress:文本框在获得焦点的状态下,用户按键动作完成之后出发OnKeyPress事件。
5.口令对象
在口令对象中,输入文本不会直接显示,而是以星号代替。它的属性、方法与事件和文本框对象是一致的。
6.文本区对象
文本区对象使用<TEXTAREA>标签,而文本框对象使用<INPUT>标签。
7.隐藏对象
隐藏对象是一个比较特殊的对象,它并不在表单中显示出来。除了隐藏对象的type属性值为hidden之外,隐藏对象和
文本框对象在属性上是一致的。
3.6.8 按钮对象
1.按钮对象的属性、方法和事件
2.属性:form、name、type、value
3.方法:blur()方法可以释放按钮的焦点;按钮的click()方法可以模仿按钮的
单击动作,但并不触发按钮的OnClick事件处理函数;而focus()方法则可
使按钮获得焦点。
4.事件
(1)OnBlur:当按钮失去焦点时,触发OnBlur事件。
(2)OnClick:当鼠标单击按钮时,触发OnClick事件
(3)OnFocus:当按钮获得焦点时,触发OnFocus事件。
(4)OnMouseDown:当鼠标单击按钮时,在按下鼠标时,触发
OnMouseDown事件。
(5)OnMouseUp:当鼠标单击按钮时,在松开鼠标时,触发OnMouseUp事
件
5.Submit按钮对象
Submit的type属性submit,单击Submit会将表单数据向服务器器程序发送。
6.Reset按钮对象
Reset的type属性是reset,单击Reset后会将表单中所有元素恢复为缺省值。
3.6.9 单选框对象和复选框对象
1.单选框的属性、方法和事件
2.属性
(1)checked:checked属性反映了单选框的状态,即选中或者不选中。
(2)defaultchecked:说明了在一组单选框中哪一个单选框在缺省状态下是选中
的。
(3)form:form属性反映了包含单选框的表单。
(4)name:name属性即为单选框的名称,一组单选框应该具有相同的名称。
(5)type:单选框的type属性为radio。
(6)value:value属性是描述单选框的相关信息
3.方法
blur()方法用于释放单选框的焦点;单选框的click()方法可以模拟单选框的单击
动作,但并不触发单选框的OnClick事件处理函数;另外,focus()方法可使单选
框获得焦点。
4.事件
(1)OnBlur:当单选框失去焦点时,触发OnBlur事件。
(2)OnClick:鼠标单击单选框时,触发OnClick事件
5.复选框的属性、方法和事件
复选框和单选框是完全不同的两种标签,一组复选框之间可能互
不影响,每个都是独立的设置。
3.6.10 选择列表对象
1.选择列表的属性、方法和事件
2.属性:
(1) form:form属性反映了包含选择列表的表单。
(2)length
(3)name:name属性值即为选择列表的名称。
(4)options
(5)selectedIndex
3.方法
blur()方法用于释放选择列表的焦点
focus()方法则可以使选择列表获得焦点。
4.事件
(1)OnBlur:当选择列表失去焦点时,触发OnBlur事件。
(2)OnChange:当用户在选择列表中作出新的选择时,触发OnChange
事件。
(3)OnFocus
当选择列表获得焦点时,触发OnFocus事件。
3.6.11 Location对象
1.Location对象的属性
当浏览器访问某个站点时,完整的URL地址如下所示:
协议名称://主机名称:端口号/页面路径#页面内锚标?搜索信
2.Location对象方法
Location对象的方法能将页面刷新或将页面导航到另外一个
URL地址。
(1)assign(URL地址)方法
assign()方法能够将页面导航到另外一个地址上去。
(2)reload()方法
运用reload()方法能够将页面全部刷新。
(3)replace(URL地址)方法
replace()方法可以使用URL地址将当前页面代替。
3.8 ActiveX控件
• ActiveX是一套与与语言无关的内部操作技术。它使
得采用不同语言编写的软件组件能够在网络环境中一
起工作。ActiveX的核心技术是COM和DCOM。
ActiveX控件是采用COM创建的可重用的小对象。使
用ActiveX控件的目的是进行可视化编程,ActiveX
控件采用运行中的DLL的方式来实现,通常有一
个.ocx扩展名。
• 在HTML中使用ActiveX控件,要用<OBJECT>标签,
一般还要使用<PARAM>标签来设置ActiveX控件的属
性。
• 使用ActiveX控件要求比较高,如自注册、属性表显
示、事件生成等。