第章VBScript脚本语言基础2022优秀文档_第1页
第章VBScript脚本语言基础2022优秀文档_第2页
第章VBScript脚本语言基础2022优秀文档_第3页
第章VBScript脚本语言基础2022优秀文档_第4页
第章VBScript脚本语言基础2022优秀文档_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章VBScript脚本语言

3.1脚本语言概述3.2VBScript基本语法3.3VBScript常用函数3.4VBScript的对象和事件3.1脚本语言概述

HTML语言生成的文档是一种静态文档,很难满足用户和Web页面之间实现交互功能的需要。脚本语言可以实现制作动态页面的要求,使程序更具有交互能力3.1.1脚本语言概述

脚本是嵌在HTML网页中的一段程序。编写简单,可以用任何文本编辑器编写,只要保存为纯ASCII文本文件即可。较流行的脚本语言有:VBScript和JavaScript。其中,VBScript(MicrosoftVisualBasicScriptingEdition,简称VBScript)是程序开发语言VisualBasic家族的成员。

ASP默认使用VBScript,作用是用来弥补网页嵌入控件(如JavaApplet或ActiveX等)的不足,它与HTML的完美结合,使得网页操作更加的灵活。3.1脚本语言概述

VBScript与JavaScript性能比较相关性能VBScriptJavaScript程序格式嵌入到HTML中嵌入到HTML中数据类型采用复合的单一变量类型,使用DIM定义后使用采用松散数据类型,变量不用定义可直接使用对象概念无法自定义对象类型,使用系统对象,无类和继承的概念,可定义函数过程和子程序过程无法自定义对象类型,使用系统对象,无类和继承的概念,只能定义函数执行方式浏览器内部虚拟机处理浏览器内部虚拟机处理安全性安全性高,严禁写入磁盘安全性高,严禁写入磁盘难易度较容易(与VB语法类似)较难(与C++语法相似)3.1脚本语言概述应用ASP技术编程时默认是使用VBScript。也可设置脚本语言:在IIS中设定(备注)在网页中指定脚本语言格式:<%@LANGUAGE=VBScript%>利用<SCRIPT>设定脚本语言例如:<SCRIPT

LANGUAGE="VBScript"RUNAT="Server">

3.1脚本语言概述3.1.2脚本语言类型

分为服务器端脚本和客户端脚本,主要区别是:1.运行方式不同:服务器端脚本在Web服务器上执行,由服务器根据脚本的执行结果生成相应的HTML页面并发送到客户端浏览器中并显示。只有服务器端脚本才能真正地实现“动态网页”。服务器端脚本的执行不受浏览器的限制,脚本在网页通过网络传送给浏览器之前被执行,Web浏览器收到的只是标准的HTML文件。客户端脚本由浏览器解释执行。由于客户端脚本随着HTML页面下载到客户端浏览器,在用户本地执行,因此其执行速度明显快于服务器端脚本。3.1脚本语言概述2.语法格式不同:(1)服务器端脚本:<SCRIPT

LANGUAGE=”VBScript”RUNAT=”server”><!--脚本代码--></SCRIPT>或<%VBScript脚本程序片段%>3.1脚本语言概述<%@LANGUAGE="VBScript"%><HTML><BODY><FONTSIZE=7>

<%"欢迎使用VBScript脚本语言!"%></FONT></BODY></HTML>3.1脚本语言概述(2)客户器端脚本:一般形式如下:<SCRIPTLANGUAGE="language"[EVENT="event"][FOR="object"]><!--脚本代码--></SCRIPT>属性的意义:LANGUAGE:指定使用哪一种脚本语言,不同的浏览器支持的脚本语言是不一样的。EVENT:指定与此段脚本相关联的事件。FOR:指定与事件相关联的对象。3.1脚本语言概述<HTML><HEAD><TITLE>客户端脚本编写举例程序</TITLE>

<SCRIPT

LANGUAGE=VBScriptEVENT="OnClick"FOR="Button1">

<!--

DimfrmTmp'声明一个变量

IfIsNumeric(frmTmp.Text1.Value)ThenIffrmTmp.Text1.Value<10orfrmTmp.Text1.Value>30ThenMsgBox"请输入10到30之间的数字!"ElseFrmTmp.Submit'输入正确,传递到服务器EndIfElseMsgBox"请输入数字!"Endif-->

</SCRIPT></HEAD>

3.1脚本语言概述<BODY

bgColor="White">

<H2>请输入10到30之间的数字:</H2><HR>

<FORM

NAME="Form1">

<INPUT

NAME="Text1"TYPE="TEXT">

<INPUT

NAME="Button1"TYPE="BUTTON"VALUE="提交">

</FORM>

</BODY></HTML>

3.1脚本语言概述例:3-31.htm:将特定代码编写成一过程或函数<HTML>

<HEAD><TITLE>客户端脚本编写举例程序</TITLE>

<SCRIPT

LANGUAGE=VBScript>

<!--

SubButton1_OnClick

DimfrmTmp'声明一个变量

IfIsNumeric(frmTmp.Text1.Value)ThenIffrmTmp.Text1.Value<10orfrmTmp.Text1.Value>30ThenMsgBox"请输入10到30之间的数字!"ElseFrmTmp.Submit'输入正确,传递到服务器EndIfElseMsgBox"请输入数字!"EndifEndSub-->

</SCRIPT></HEAD>

3.1脚本语言概述<BODY

bgColor="White">

<H2>请输入10到30之间的数字:</H2><HR>

<FORM

NAME="Form1">

<INPUT

NAME="Text1"TYPE="TEXT">

<INPUT

NAME="Button1"TYPE="BUTTON"VALUE="提交">

</FORM>

</BODY></HTML>

3.1脚本语言概述注意:VBScript的用户界面元素(如MsgBox和InputBox)不能在服务器端脚本中使用。MsgBox用于显示一个信息框,InputBox用于产生一个输入框,它们只能在客户端执行。<%@LANGUAGE="VBScript"%><HTML><BODY><FONTSIZE=7><%"欢迎使用VBScript脚本语言!"%><%MsgBox"请输入数字!"%></FONT></BODY></HTML>运行后出错:返回3.2VBScript基本语法3.2.1编程技巧

使用续行符“_”(由一个空格和一个下划线组成),将长的语句分成多行书写。在编写程序时,为了方便以后对程序进行修改和维护必须添加必要的注释,这样能够很容易地读懂程序。注释的一般格式为:格式一:Rem注释内容格式二:′注释内容或语句′注释内容3.2VBScript基本语法<HTML><HEAD><TITLE>将单行语句分成多行程序举例</TITLE><SCRIPTLANGUAGE="VBScript">SubShowMessage′定义子过程ShowMessagestrExmp="欢迎您光临本网站,"&_"您可以浏览最新图书信息,"&_"如果您有什么意见和建议,请来信!"MsgBoxstrExmpEndSubCallShowMessage′调用子过程ShowMessage</SCRIPT></HEAD><BODY>……</BODY></HTML>3.2VBScript基本语法默认为十进制数:10、250十六进制:加前缀&H(如&H9)八进制:加前缀&0(数字0)或&O(字母O)(如&011或&O11)3.2VBScript基本语法3.2.2数据类型在VBScript中,只有一种数据类型,即Variant类型,所以它也是VBScript中所有函数的返回值的数据类型。但变量可以根据所赋值的不同而代表不同类型的数据。最简单的Variant可以包含数字或字符串信息。Variant用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。这就是说,如果使用看起来象是数字的数据,则VBScript会假定其为数字并以适用于数字的方式处理。与此类似,如果使用的数据只可能是字符串,则VBScript将按字符串处理。当然,也可以将数字包含在引号("")中使其成为字符串。3.2VBScript基本语法Variant子类型除简单数字或字符串以外,Variant可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。当然,从Boolean值到浮点数,数值信息是多种多样的。Variant包含的数值信息类型称为子类型。大多数情况下,可将所需的数据放进Variant中,而Variant也会按照最适用于其包含的数据的方式进行操作。Variant子类型Empty:未初始化的Variant。对于数值变量,值为0;对于字符串变量,值为零长度字符串(“”)。Null:不包含任何有效数据的Variant。Boolean:包含True

或False。Byte

:包含0到255之间的整数。

Integer

:包含-32,768到32,767之间的整数。Currency:-922,337,203,685,477.5808到。Variant子类型Long:包含-2,147,483,648到2,147,483,647之间的整数。Single:包含单精度浮点数,负数范围从-3.402823E38到,正数范围从1.401298E-45到。Double:包含双精度浮点数,负数范围从-1.79769313486232E308到,正数范围从4.94065645841247E-324到。Variant子类型Date(Time):包含表示日期的数字,日期范围从公元100年1月1日到公元9999年12月31日。String:包含变长字符串,最大长度可为20亿个字符。Object:包含对象。Error:包含错误号。可以使用转换函数来转换数据的子类型。另外,可使用VarType

函数返回数据的Variant子类型。Variant子类型注意:任何Variant类型变量经声明后如果未指定值,则其值未定义(Empty),这个未定义与空值(Null)是不同的,Null代表无效数据,Empty的变量在使用时是值为0或为空的字符串,Null的变量必须为其赋初值才可用。3.2VBScript基本语法3.2.3常量

1.文字常量

(1)字符串常量:用双引号作为定界符,由ASCII码字符组成(除双引号和回车符外),长度不能超过20亿个字符。例如:"中华人民共和国"、"1233.45"等。(2)数值常量:包括整型数、长整型数和浮点数。例如:0、300、-4125、&H85(表示十六进制数85)、&O226(表示八进制数226)、1.23E8、3.54E-5等。(3)日期时间型常量:用#号括起来。例如:#2001-3-15#、#2003-4-208:38:25AM#等。3.2VBScript基本语法2.符号常量通过关键字Const定义例如:Const

PI

Const

Add=“理工”常量名称常量含义True表示布尔真值False表示布尔假值Null表示空值Empty表示没有初始化之前的值vbCr表示回车vbCrLf表示回车/换行vbTab表示制表符3.2VBScript基本语法3.2.4变量1.变量命名约定(1)变量的名字只能由字母、数字和下划线组成;(2)名字只能以字母开头;(3)名字的最大长度不能超过255个字符;(4)不能和VBScript中的关键字(保留字)相同,但是可以作为变量名的一部分;(5)变量名在被声明的同一个作用范围内必须是唯一的。注意:VBScript中变量不区分字母大小写3.2VBScript基本语法为了区分不同类型的变量,可以通过变量名的前缀来指明该变量的子类型。子类型前缀示例子类型前缀示例IntegerIntIntYearLongLngLngNumberCurrencyCurCurMoneySingleSngSngSalaryDoubleDblDblPopulationByteBytBytCharacterBooleanBlnBlnRetiredStringStrStrNameDate(Time)DtmDtmSystemObjectObjObjTemp3.2VBScript基本语法2.声明变量(1)隐式声明方式。使用一个变量前并不需要声明,而可以直接在脚本代码中使用,系统会自动地在内存中开辟存储区域登记变量名。<%@LANGUAGE=VBScript%><%dtmToday=Now()%>当前的日期和时间是:<%=dtmToday%>3.2VBScript基本语法(2)显式声明方式。使用变量声明语句Dim、Public和Private语句。显式声明可以在定义变量的时候为变量在内存中预留空间,登记变量名。使用OptionExplicit语句来强制显示声明

<%@LANGUAGE=VBScript%><%OptionExplicit

DimstudentAge

Dim

studentA%>3.2VBScript基本语法Public和Private语句声明变量的格式和Dim语句一样。例如:

Public

va11,var2

Private

Age,NamePublic语句用来声明全局变量,这些变量可以在网页页面中所有脚本使用。Private语句用来声明私有变量,这些变量只能在声明它们的脚本使用,即在声明它们的<Script></Script>标记中间使用。Public和Private语句声明变量时都必须在过程之前的脚本级使用,控制变量的作用范围。3.2VBScript基本语法3.变量的作用域

变量的作用域指的是变量的有效范围,因为变量被声明后不是在任何地方都可以被使用,每个变量都有它的使用范围,在作用域内可以使用变量,在作用域外则变量不可见。在VBScript中分为过程内有效和整个程序中都有效。在过程内部声明的变量称为过程级变量或局部变量,这样的变量只有在声明它们的过程中才能使用,即无法在过程外部访问;过程外部声明的变量称为脚本级变量或全局变量,即在同一个.asp文件中的任何脚本命令均可访问和修改该变量的值。3.2VBScript基本语法<%OptionExplicit

Dim

intX'声明脚本级变量

intX=1'给脚本级变量赋值callSetLocalVariab1e'调用过程修改过程级变量的值Response.WriteintX'将脚本级变量的值发送到浏览器,值仍为1

SubSetLocalVariab1e

DimintX'声明过程级变量IntX=2'给过程级变量赋值

EndSub%>3.2VBScript基本语法<%OptionExplicit

Dim

intX

'声明脚本级变量

IntX=1'给脚本级变量赋值SetLocalVariable'调用过程修改变量的值Response.WriteintX'将脚本级变量的值发送到浏览器,值为2

SubSetLocalVariable

IntX=2'给脚本级变量赋值

EndSub%>3.2VBScript基本语法3.2.5数组

VBScript中的数组有以下几个特点:使用数组之前要先进行定义,然后才能使用。通常用Dim语句来定义数组。数组下标的下界一律从0开始。声明数组时可以给出数组的上界。一个数组中可以含有不同数据类型的数组元素。3.2VBScript基本语法1.静态数组

静态数组可分为一维数组、二维数组或多维数组。数组的维数和大小由数组名之后紧跟的括号中的数字的个数和数值的大小来决定。静态数组的大小在运行时不可改变。它是在编译时开辟内存区的。例如:Dim

ArrStu(3)Dim

arrTwoDim(2,3)赋值方法:是给数组的各个元素分别赋值ArrStu(0)=”20080101”ArrStu(1)=”wanghai”ArrStu(2)=19ArrStu(3)=#3-15-90#

3.2VBScript基本语法2.动态数组动态数组是运行时大小可变的数组。当程序没有运行时,动态数组不占内存,在程序运行时才开辟内存区。定义一般分两步:首先用Dim语句声明一个括号内不包含下标的数组,然后在使用数组之前用ReDim语句根据实际需要重新定义下标值。也可以用ReDim语句直接定义动态数组。RemDim语句格式为:RemDim[Preserve]变量(下标)Preserve:保持数组原有数据不变3.2VBScript基本语法例如:定义Dimarr1()使用时可不断地改变数组元素个数RemDimarr1(10)RemDimarr1(20)每次执行RemDim语句时数组中的数据会丢失,如希望改变元素个数时保持数据。RemDimPreservearr1(Ubound(arr1)+1)注意:RemDim只能改变数组元素个数,但不能改变数组维数。Ubound()函数返回数组上界3.2VBScript基本语法3.2.6VBScript的表达式与运算符表达式的类型:数学表达式、条件表达式和字符串表达式。数学表达式用于常规的数值运算,运算结果仍然为数值;条件表达式常用于根据一系列事件的最后结果做出判断,并采取相应的动作,运算结果为布尔值True或者False;字符串表达式用来将多个字符串连接成一个较长的字符串,运算结果仍为字符串。VBScript中的每一种表达式都要使用一些特殊的运算符来帮助完成功能,运算符一般分为两种:单目运算符和双目运算符。3.2VBScript基本语法1、VBScript的数学表达式及其运算符运算符名称表达式例子运算符名称表达式例子^乘方a^b-取负-c*乘法a*b/浮点除法a/b\整数除法a\bMod求余的模运算aModb+加法a+b-减法a-b3.2VBScript基本语法2、VBScript的条件表达式及其运算符运算符描述True如果False如果Null如果<小于表达式1<表达式2表达式1>=表达式2表达式1or表达式2=Null<=小于或等于表达式1<=表达式2表达式1>表达式2表达式1or表达式2=Null>大于表达式1>表达式2表达式1<=表达式2表达式1or表达式2=Null>=大于或等于表达式1>=表达式1表达式1<表达式2表达式1or表达式2=Null=等于表达式1=表达式2表达式1<>表达式2表达式1or表达式2=Null<>不等于表达式<>表达式2表达式1=表达式2表达式1or表达式2=NullIs用于对象

表达式1or表达式2=Nullresult=object1

Is

object2说明:比较运算符IS是指:如果object1与object2引用的是同一个对象,则result为true;否则为false。3.2VBScript基本语法逻辑运算符值为:True,两个表达式的值同为真或假,整个表达式为假,否则为真。10>8Xor8<6逻辑异或Xor值为:False,由真变假或由假变真,进行取“反”操作。Not(1>0)非Not值为:True,两个表达式中只要一个值为真,结果就为真,只有两个表达式的值均为假,结果才为假。(4>5)or(3<4)

或Or值为:False,两个表达式的值均为真,结果才为真。(4>5)And(3<4)

与And说明例子名称运算符3.2VBScript基本语法逻辑运算符续值为:False,当第一表达式为真,第二个表达式的值为假,结果就为假,否则结果为真。(3<4)Imp(4>5)蕴涵Imp值为:True,两个表达式的值同为真或假,整个表达式为真,否则为假。(4<5)Eqv(3<4)

等价Eqv说明例子名称运算符3.2VBScript基本语法3、VBScript的字符串表达式字符串表达式:在进行字符串处理时,经常要把两个或者更多个字符串进行连接,形成一句完整的语句。VBScript提供了字符串表达式。连接运算符:连接运算符是将两个字符串表达式连接起来,生成一个新的字符串。连接运算符有两个:“+”和“&”。&:参与连接的两个表达式可以不全是字符串。

3.2VBScript基本语法+:如果连接的两个操作数中一个是非数字字符串,另一个是数字,则会出错。如以下代码就会产生错误:

intNum=22

strTemp=“学号是”+

intNum

如果连接的两个操作数中一个是数字字符串,另一个是数字,则结果为两个数字相加3.2VBScript基本语法运算符的优先顺序Xor12Or11And10Not逻辑运算符9=、<>、<、>、<=、>=、Is比较运算符8&(字符串连接)连接运算符7+、-(加法和减法)6Mod(求余运算)5\(整数除法)4*、/(乘法和除法)3-(负数运算)2^(指数运算)算术运算符1运算符运算符类型优先顺序13、Eqv

14、Imp3.2VBScript基本语法3.2.7控制结构

VBScript提供了两种类型的控制语句:流程控制语句和循环控制语句。流程控制语句通常情况下用来控制程序流程的条件转向和选择问题等,包括选择语句(If…Then…Else)多分支选择语句(Select…Case)循环控制语句用来编写程序中所需要的特定条件下执行过程相似的循环流程,包括For循环控制语句(For…Next)Do循环控制语句(Do…Loop)While循环控制语句(While…Wend)3.2VBScript基本语法一、条件控制语句1、条件(选择)结构(1)简单条件控制语句。其语法如下:

If条件表达式Then语句体1[Else语句体2]例<HTML><HEAD><TITLE>选择结构程序举例1</TITLE><SCRIPTLANGUAGE="VBScript">SubShowMessage

dim

x,y,z

x=2

if

x>0

then

y=x

z=-x

else

y=-x

z=x

endif

'以对话框的形式输出x,y和z的值

MsgBox"x的值为"&x&",y的值为"&y&",z的值为"&zEndSubcallShowMessage'调用ShowMessage过程</SCRIPT></HEAD><BODY>……</BODY></HTML>3.2VBScript基本语法(2)嵌套条件控制语句。语法格式如下:

If条件表达式1Then

[语句体1][ElseIf条件表达式2Then

[语句体2]]…[Else

[语句体n]]

EndIf

SubShowMessage

dim

x,y

x=InputBox("请输入x的值:")

if

not

isnumeric(x)then

MsgBox"输入错误,请输入数字!"

elseif

x>0

then

y=x

elseif

x<0

then

y=-x

else

y=0

endif

ifisnumeric(x)then

MsgBox"x的值为"&

x

&",y的值为"&

yendifEndSubcallShowMessage'调用ShowMessage过程3.2VBScript基本语法2.多分支结构可以用多分支结构来替代块结构的条件语句,多分支结构比块结构的条件语句容易阅读。多分支结构的语法如下:SelectCase

测试表达式[Case

表达式1[语句体1]][Case

表达式2[语句体2]]…[CaseElse[语句体n]]EndSelect<HTML>

<HEAD><TITLE>多分支结构程序举例</TITLE>

<SCRIPT

LANGUAGE="VBScript">

SubShowMessagedim

x

x=InputBox("请输入x的值(1-7):")if

notisnumeric(x)then

x=""selectcase

x

case""MsgBox"输入错误,请输入数字!"case1

MsgBox"星期一"case2

MsgBox"星期二"case

3

MsgBox"星期三"case

4

MsgBox"星期四"case

5

MsgBox"星期五"case

6

MsgBox"星期六"case

7

MsgBox"星期日"caseelse

MsgBox"请输入1-7中的数字!"endselect

EndSub

callShowMessage'调用ShowMessage过程</SCRIPT>

</HEAD><BODY>……</BODY></HTML>

3.2VBScript基本语法二、循环控制语句1.For循环演示(1)For…Next语句:指定循环次数,使用计数器重复运行语句。格式For

循环变量=初值To终值[Step步长]循环体[ExitFor]

Next[循环变量]如:'计算1加到10的总和

Total=0

For

Conter=1To10

Total=Total+Counter

Next演示<HTML>

<HEAD><TITLE>For循环结构程序举例</TITLE>

<SCRIPT

LANGUAGE=VBScript>

<!--

SubShowMessage

dimi,intSum,flag,result

intSum=0

result=""

Fori=3To100Step2

flag=1

Forj=2Toi-1Step1

Ifimodj=0Then

flag=0

ExitFor

EndIf

NextIfflag=1then

result=result&i&";"EndIfNext

MsgBox"3到100之间的素数为:"&result

EndSub

callShowMessage'调用ShowMessage过程

-->

</SCRIPT></HEAD><BODY>......</BODY></HTML>

3.2VBScript基本语法(2)ForEach…Next语句:对于集合中的每项或数组中的每个元素,重复执行一组语句,格式ForEach

元素

In集合语句体

Next[元素]演示如:

Dim

Score(3)'定义一个有4个变量的数组Score(0)=90Score(1)=86Score(2)=99Score(3)=54'用循环输出每一位学生的成绩

ForEachIIn

Score‘此时数组只需写出名称Msg=Msg&I&Chr(13)&Chr(10)

NextMsgBoxMsg<%@LANGUAGE="VBScript"%><HTML><BODY><FONTSIZE=7>

ForEach

item

InResponse.WriteRequest.Form(item)Response.Write"<br>"

Next%></FONT></BODY></HTML>3.2VBScript基本语法2.Do循环演示

第一种:先判断

Do[While|Until循环条件]循环体[ExitDo]

Loop

第二种:后判断,循环体至少执行一次

Do循环体[ExitDo]Loop[While|Until循环条件]演示<HTML>

<HEAD><TITLE>Do循环结构程序举例</TITLE>

<SCRIPT

LANGUAGE=VBScript>

<!--

SubShowMessage

dimi,intSum,flag,result

intSum=0

result=""

i=3

演示

DoWhilei<=100

flag=1

j=2

DoUntilj>i-1

Ifimodj=0Then

flag=0

ExitDo

EndIf

j=j+1

LoopIfflag=1then

result=result&I&";"EndIf

i=i+1

Loop

演示MsgBox"3到100之间的素数为:"&result

EndSub

callShowMessage'调用ShowMessage过程

-->

</SCRIPT></HEAD>

<BODY>

......</BODY></HTML>

3.2VBScript基本语法3.While循环演示格式:While

循环条件

循环体WendWhile循环是先判断循环条件,根据循环条件的值来决定是否执行循环体。如果循环条件为真或不为0时执行循环体,直到循环条件不满足时退出While循环。例:While

i<=100

intSum=intSum+ii=i+1

Wend

3.2VBScript基本语法三、其他常用简单语句1.Rem语句

Rem注释语句2.Erase语句用来将非动态数组的所有元素的值重新设置为空类型

Erase数组名3.Set语句和Let语句

Set用来把对象的引用赋给变量

Set

objectVar=数值Let用来把表达式的值赋给变量Leta=a+14.Rnd函数用于产生随机数,数值在0和1之间。变量=Rnd*倍数

intVar=int(Rnd*100)DimintArray(5)Fori=0to5intArray(i)=i+1NextEraseintArray3.2VBScript基本语法3.2.8过程VBScript的过程有如下几个特点:过程只能有单一入口,但可以有多个出口。在浏览器的任何一个网页中都可以定义过程,习惯上将过程定义在<HEAD>和</HEAD>中。可以用浏览器所特有的事件来调用。通过过程可以将重复使用的代码单独定义,提高代码利用率。使得查错和改错工作变得简单。可以向过程中传递任何有效的参数。3.2VBScript基本语法1.Sub过程

Sub过程是没有返回值的过程,它可以被任何脚本程序的过程调用,一般语法格式如下:

[Private][Public]Sub

过程名[(参数列表)][语句块][ExitSub][语句块]

EndSub

注意:Sub过程不能嵌套定义,即不能在一个Sub过程内部定义另一个Sub过程.但Sub过程可以嵌套调用,即在一个Sub过程内部可以调用另一个Sub过程.Private:表示私有过程,只能被进行过的脚本的其他过程调用;Public:表示公有过程,可以被脚本中的其他任何过程调用;省略此关键字,则默认为Public3.2VBScript基本语法Sub过程的调用方法有:(1)使用Call语句进行调用。格式如下:

Call

子过程名[(实际参数)]演示注意:实际参数的个数要和形式参数的个数完全相同,它是传递给子过程的变量或常数。例如:

CallCountNum(120,84)

(2)直接将子过程名作为一个语句来调用:

子过程名[实际参数]演示括号必须有必须没有括号演示dimx,yx=CDbl(InputBox("请输入x的值"))y=CDbl(InputBox("请输入y的值"))callOutputAdd(x,y)'调用OutputAdd过程,并传递x和y的值SubOutputAdd(a,b)

dimzz=a+bMsgBox"两数之和是:"&zEndSub

演示dimx,yx=InputBox("请输入x的值")y=InputBox("请输入y的值")OutputAddx,y'调用OutputAdd过程,并传递x和y的值SubOutputAdd(a,b)dimzifnotisnumeric(a)thenMsgBox"x的值输入错误!"ExitSubendififnotisnumeric(b)thenMsgBox"y的值输入错误!"ExitSubendifa=cdbl(a)b=cdbl(b)z=a+bMsgBox"两数之和是:"&zEndSub3.2VBScript基本语法2.函数演示函数的定义语法格式如下:[Private][Public]Function

函数名[(参数列表)][语句块]

函数名=表达式[ExitFunction][语句块]

EndFunction

注意:函数名=表达式:至少要有一个这样的式子,设置函数的返回值3.2VBScript基本语法Function过程的调用方法有:Call

函数名[(实际参数)]如:

Call

Add(x,y)函数名[(实际参数)]如:

Addx,y变量=函数名(实参列表)如:

Sum=Add(x,y)返回演示dimx,y,FuncResultx=cdbl(InputBox("请输入x的值"))y=cdbl(InputBox("请输入y的值"))FuncResult=OutputAdd(x,y)'调用OutputAdd函数,并传递x和y的值MsgBox"两数之和是:"&FuncResultFunctionOutputAdd(a,b)dimzz=a+bOutputAdd=zEndFunction3.3VBScript的常用函数

3.3.1MsgBox函数在VBScript中,基本输出操作是通过向用户显示一个信息框来完成的。实现这个功能的方法是使用MsgBox函数。在前面的程序中已经多次使用过这个函数。函数的一般格式如下所示:

MsgBox(prompt[,buttons][,title][,helpfile,context])3.3VBScript的常用函数Prompt:作为消息显示在对话框中的字符串表达式。prompt的最大长度大约是1024个字符,这取决于所使用的字符的宽度。如果prompt中包含多个行,则可在各行之间用回车符(Chr(13))、换行符(Chr(10))或回车换行符的组合(Chr(13)&Chr(10))分隔各行。3.3VBScript的常用函数Buttons数值表达式,是表示指定显示按钮的数目和类型、使用的图标样式,默认按钮的标识以及消息框样式的数值的总和。有关数值,请参阅“设置”部分。如果省略,则buttons的默认值为0。第一组值(0-5)

用于描述对话框中显示的按钮类型与数目;第二组值(16,32,48,64)

用于描述图标的样式;第三组值(0,256,512)

用于确定默认按钮;在将这些数字相加以生成buttons参数值时,只能从每组值中取用一个数字。3.3VBScript的常用函数常数值描述vbOKOnly0只显示OK按钮VbOKCancel1显示

OK及Cancel按钮VbAbortRetryIgnore2显示Abort、Retry及Ignore按钮VbYesNoCancel3显示Yes、No及Cancel按钮VbYesNo4显示Yes及No按钮VbRetryCancel5显示Retry及Cancel按钮VbCritical16显示CriticalMessage图标VbQuestion32显示WarningQuery图标VbExclamation48显示WarningMessage图标VbInformation64显示InformationMessage图标Buttons参数常用的设置值:3.3VBScript的常用函数Buttons参数常用的设置值vbDefaultButton10第一个按钮是缺省值vbDefaultButton2256第二个按钮是缺省值vbDefaultButton3512第三个按钮是缺省值vbDefaultButton4768第四个按钮是缺省值常数值描述3.3VBScript的常用函数不同的命令按钮对应的函数的返回值:

常数值描述vbOK1OKvbCancel2CancelvbAbort3AbortvbRetry4RetryvbIgnore5IgnorevbYes6YesvbNo7No3.3VBScript的常用函数Title显示在对话框标题栏中的字符串表达式。如果省略title,则将应用程序的名称显示在标题栏中。Helpfile字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供helpfile,则必须提供context。在16位系统平台上不可用。Context数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供context,则必须提供helpfile。在16位系统平台上不可用。3.3VBScript的常用函数说明如果同时提供了helpfile和context,则用户可以按F1键以查看与上下文相对应的帮助主题。如果对话框显示取消按钮,则按ESC键与单击取消的效果相同。如果对话框包含帮助按钮,则有为对话框提供的上下文相关帮助。但是在单击其他按钮之前,不会返回任何值。当MicroSoftInternetExplorer使用MsgBox函数时,任何对话框的标题总是包含"VBScript",以便于将其与标准对话框区别开来。下面的例子演示了MsgBox函数的用法:DimMyVarMyVar=MsgBox

("HelloWorld!",65,"MsgBoxExample")

'MyVarcontainseither1or2,dependingonwhichbuttonisclicked.演示<HTML><HEAD><TITLE>MsgBox使用方法</TITLE>

<SCRIPT

LANGUAGE="VBScript">

<!--

DimintResult

intResult=MsgBox("VBScript是很有用的,“&chr(13)&chr(10)&"你很想学好VBScript吗?",4+32,"请你选择:")

ifintResult=6then

MsgBox("你是个好学生,我们会尽全力的!“&chr(13)&chr(10)&"一起努力吧!")

else

MsgBox("你好残忍,你就这样放弃了我!")

endif

-->

</Script></HEAD>

<BODY>

</BODY>

</HTML>

3-8Lxmsgbox.htm练习<HTML><HEAD><TITLE>MsgBox函数</TITLE><SCRIPTLANGUAGE="VBScript"><!--Dimynyn=MsgBox("欢迎走进飘飘聊天室!"&chr(13)&_"你是第一次来到本站吗?",4+64,"飘飘聊天室!")Ifyn="6"Then'回答是MsgBox("欢迎你,新朋友!有空多来坐坐!")ElseMsgBox("原来是老朋友呀,热烈欢迎!")EndIf--></SCRIPT></HEAD>3.3VBScript的常用函数

3.3.2InputBox函数如果需要用户在键盘上输入数据,可使用InputBox函数。函数执行时会显示一个对话框,等待用户输入正文或按下按钮,函数会将用户的输入信息作为字符串返回。函数的一般格式如下所示:InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])3.3VBScript的常用函数prompt:同MsgBoxTitle:同MsgBoxHelpfile:同MsgBoxContext:同MsgBoxDefault:显示在文本框中的字符串表达式,在没有其它输入时作为默认的响应值。如果省略default,则文本框为空。3.3VBScript的常用函数Xpos:数值表达式,用于指定对话框的左边缘与屏幕左边缘的水平距离(单位为缇)。如果省略xpos,则对话框会在水平方向居中。Ypos:数值表达式,用于指定对话框的上边缘与屏幕上边缘的垂直距离(单位为缇)。如果省略ypos,则对话框显示在屏幕垂直方向距下边缘大约三分之一处。3.3VBScript的常用函数说明如果同时提供了helpfile和context,就会在对话框中自动添加“帮助”按钮。如果用户单击确定或按下ENTER,则InputBox函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串("")。下面例子利用InputBox函数显示一输入框并且把字符串赋值给输入变量:DimInputInput=InputBox("输入名字")

MsgBox("输入:"&Input)<HTML><HEAD><TITLE>InputBox函数的使用</TITLE>

</HEAD><BODY>

<SCRIPT

LANGUAGE="VBScript">

<!--

DimstrUserName,strUserAddress

strUserName=InputBox("请输入您的名字:","用户信息记录")

strUserAddress=InputBox("请输入您的住址:","用户信息记录")

MsgBox("您的基本信息为:"&chr(13)&chr(10)&"姓名:"&strUserName&chr(13)&chr(10)&"住址:"&chr(13)&chr(10)&strUserAddress)

-->

</SCRIPT>

</BODY></HTML>

3-9Lxinputbox.htm练习<HTML><HEAD><TITLE>INPUTBOX&MSGBOX练习</TITLE><SCRIPTLANGUAGE="VBSCRIPT">'INPUTBOX&MSGBOX应用示例NAME=INPUTBOX("请输入大名:","请输入你的名字")SCORE=INPUTBOX("请输入成绩:","请输入成绩","88")IFSCORE>=60THENMSG="及格!"ELSEMSG="不及格!"ENDIFMSGBOXNAME&",您的电脑成绩是"&SCORE&"分,"&MSG</SCRIPT></HEAD></HTML>3.3VBScript的常用函数

3.3.3数学函数求平方根函数(Sqr)求绝对值函数(Abs)指数函数(Exp)对数函数(Log)符号函数(Sgn)三角函数3.3VBScript的常用函数Sqr函数:返回数值的平方根。Sqr(number)number参数可以是任意有效的大于或等于零的数值表达式。说明下面的示例利用Sqr函数计算数值的平方根:DimMySqrMySqr=Sqr(4)'返回2。MySqr=Sqr(23)'返回4.79583152331272。MySqr=Sqr(0)'返回0。MySqr=Sqr(-4)'产生实时错误。3.3VBScript的常用函数Abs函数:返回数字的绝对值。Abs(number)number参数可以是任意有效的数值表达式。如果number包含Null,则返回Null;如果是未初始化变量,则返回0。说明数字的绝对值是其无符号的数值大小。下面示例利用Abs函数计算数字的绝对值:

DimMyNumberMyNumber=Abs(50.3)

’返回50.3。MyNumber=Abs(-50.3)

'返回50.3。3.3VBScript的常用函数Exp函数:返回e(自然对数的底)的幂次方。Exp(number)number参数可以是任意有效的数值表达式。说明如果number参数超过709.782712893,则出现错误。常数e的值约为2.718282。注意Exp函数完成Log函数的反运算,并且有时引用为反对数形式。下面的示例利用Exp函数返回e的幂次方:DimMyAngle,MyHSin‘用弧度定义角。MyAngle=1.3‘计算双曲线的正弦。MyHSin=(Exp(MyAngle)-Exp(-1*MyAngle))/23.3VBScript的常用函数Log函数:返回数值的自然对数。Log(number)number参数是任意大于0的有效数值表达式。说明自然对数是以e为底的对数。常数e的值约为2.718282。用n的自然对数除x的自然对数,可以得到以n为底的x的对数。如下所示:Logn(x)=Log(x)/Log(n)以下示例为一个自定义的过程,该过程计算以10为底的对数:FunctionLog10(X)‘函数

Log10=Log(X)/Log(10)EndFunction3.3VBScript的常用函数Sgn函数:返回表示数字符号的整数。Sgn(number)

number参数可以是任意有效的数值表达式。Sgn函数有如下返回值:如果number为Sgn返回大于零1等于零0小于零-1说明number参数的符号决定Sgn函数的返回值。下面的示例利用Sgn函数决定数值的符号:

DimMyVar1,MyVar2,MyVar3,MySignMyVar1=12:MyVar2=-2.4:MyVar3=0MySign=Sgn(MyVar1)'返回1。MySign=Sgn(MyVar2)'返回-1。MySign=Sgn(MyVar3)'返回0。3.3VBScript的常用函数Sin函数返回某个角的正弦值。Sin(number)number参数可以是任何将某个角表示为弧度的有效数值表达式。说明Sin函数取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的对边长度与斜边长度之比。结果的范围在-1到1之间。将角度乘以pi/180即可转换为弧度,将弧度乘以180/pi即可转换为角度。下面例子利用Sin返回角度的正弦:DimMyAngle,MyCosecantMyAngle=1.3‘用弧度定义角度。MyCosecant=1/Sin(MyAngle)'计算余割。3.3VBScript的常用函数Cos函数:返回某个角的余弦值。Cos(number)number参数可以是任何将某个角表示为弧度的有效数值表达式。说明Cos函数取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的邻边长度与斜边长度之比。结果范围在-1到1之间。下面的示例利用Cos函数返回一个角的余弦值:DimMyAngle,MySecantMyAngle=1.3'用弧度定义一个角。MySecant=1/Cos(MyAngle)'计算正割。3.3VBScript的常用函数Tan函数:返回某个角的正切值。Tan(number)number参数可以是任何将某个角表示为弧度的有效数值表达式。说明Tan取某个角并返回直角三角形两个直角边的比值。此比值是直角三角形中该角的对边长度与邻边长度之比。

下面的示例利用Tan函数返回角度的正切:DimMyAngle,MyCotangentMyAngle=1.3'用弧度定义角度。MyCotangent=1/Tan(MyAngle)'计算余切。3.3VBScript的常用函数Atn函数返回数值的反正切值。Atn(number)number参数可以是任意有效的数值表达式。说明Atn函数计算直角三角形两个边的比值(number)并返回对应角的弧度值。此比值是该角对边的长度与邻边长度之比。结果的范围是从-pi/2到pi/2弧度。下面的示例利用Atn来计算pi的值:Dimpipi=4*Atn(1)'计算pi的值。注意:Atn是Tan(将角作为参数返回直角三角形两边的比值)的反三角函数。不要混淆Atn与余切(正切的倒数(1/tangent))函数。演示例<HTML><HEAD><TITLE>数学函数</TITLE><SCRIPTLANGUAGE="VBSCRIPT"><!--'计算0-180度之间的sin、cos值COUNT=0

Dos=COUNT*3.14159/180'角度转换为弧度s=Round(s,3)'返回按指定位数进行四舍五入的数("<center><p><b><fontsize=5>"_&"sin("&s&")="&round(sin(s),3)&_",cos("&s&")="&round(cos(s),3)&_"</font></b></p></center>")COUNT=COUNT+20

LoopUntilCOUNT>180--></SCRIPT></HEAD><BODY></BODY></HTML>3.3VBScript的常用函数3.3.4字符串函数空格函数Space(n)删除空白字符函数Trim(字符串)字符串长度测试函数Len(字符串|变量名)字符串截取函数字母大小写转换函数字母串匹配函数3.3VBScript的常用函数Space函数:返回由指定数目的空格组成的字符串。Space(number)number参数为字符串中用户所需的空格数。说明下面的示例利用Space函数返回由指定数目空格组成的字符串:DimMyStringMyString=Space(10)'返回具有10个空格的字符串。MyString="Hello"&Space(10)&"World"'在两个字符串之间插入10个空格。3.3VBScript的常用函数LTrim、RTrim和Trim函数返回不带前导空格(LTrim)、后续空格(RTrim)或前导与后续空格(Trim)的字符串副本。LTrim(string)RTrim(string)Trim(string)string参数是任意有效的字符串表达式。如果string参数中包含Null,则返回Null。说明下面的示例利用LTrim,RTrim,和Trim函数分别用来除去字符串开始的空格、尾部空格、开始和尾部空格:DimMyVarMyVar=LTrim("vbscript")'MyVar包含"vbscript"。MyVar=RTrim("vbscript")'MyVar包含"vbscript"。MyVar=Trim("vbscript")'MyVar包含"vbscript"。3.3VBScript的常用函数Len函数返回字符串内字符的数目,或是存储一变量所需的字节数。Len(string|varname)参数string任意有效的字符串表达式。如果string参数包含Null,则返回Null。Varname任意有效的变量名。如果varname参数包含Null,则返回Null。说明下面的示例利用Len函数返回字符串中的字符数目:DimMyStringMyString=Len("VBSCRIPT")'MyString包含8。3.3VBScript的常用函数Left函数返回指定数目的从字符串的左边算起的字符。Left(string,length)参数string字符串表达式,其最左边的字符被返回。如果string参数中包含Null,则返回Null。Length数值表达式,指明要返回的字符数目。如果是0,返回零长度字符串("");如果大于或等于string参数中的字符总数,则返回整个字符串。说明可使用Len函数确定string参数中的字符数目。下面的示例利用Left函数返回MyString的左边三个字母:DimMyString,LeftStringMyString="VBSCript"LeftString=Left(MyString,3)'LeftString包含"VBS"。3.3VBScript的常用函数Mid函数:从字符串中返回指定数目的字符。Mid(string,start[,length])参数string字符串表达式,从中返回字符。如果string包含Null,则返回Null。Startstring中被提取的字符部分的开始位置。如果start超过了string中字符的数目,Mid将返回零长度字符串("")。Length要返回的字符数。如果省略或length超过文本的字符数(包括start处的字符),将返回字符串中从start到字符串结束的所有字符。说明要判断string中字符的数目,可使用Len函数。下面的示例利用M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论