| 和普通编程语言一样,VBScript 也提供了过程与函数的概念。程序员可以利用过程与函数简化编程工作量。同时VBScript
也提供了很多可以直接使用的内置函数。
2.4.1 VBScript中的过程
VBScript中,过程有两种,一种是Sub 过程,一种是Function函数。Sub 过程只执行程序而不返回值,而Function函数可以将执行代码的结果返回给请求程序。
1.Sub 过程
Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。
语法如下:
Sub 过程名 (参数1,参数2,…)
…
End Sub
说明:
其中参数是指由调用过程传递的常数、变量或表达式。如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ( )。
Sub 过程名 ( )
…
End Sub
过程的调用有两种形式:
▲ 使用Call语句
Call 过程名(参数1,参数2,…)
▲ 不使用Call语句
过程名(参数1,参数2,…)
范例2-18:
Sub ConvertTemp()
temp = InputBox("请输入华氏温度。", 1)
MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"
End Sub
上面的 Sub 过程使用两个固有的(或内置的)VBScript 函数,即 MsgBox 和 InputBox来提示用户输入信息。然后显示根据这些信息计算结果。计算由VBScript
的 Function 函数完成。
2.Function 函数
Function函数,是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function函数与
Sub 过程类似,但是 Function函数可以返回值。Function 函数可以使用参数(由调用过程传递的常数、变量或表达式)。如果
Function 函数无任何参数,则 Function 语句必须包含空括号 ( )。Function函数通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function
返回值的数据类型总是 Variant。
语法如下:
Function 函数名 (参数1,参数2...)
…
End Function
在范例2-18中,Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。
范例2-19:用Celsius 函数将华氏度换算为摄氏度
<html>
<head>
<title>过程范例</title>
<script language="vbscript">
<!--
Sub ConvertTemp()
temp = InputBox("请输入华氏温度。", 1)
MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"
End Sub
Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
-->
</script>
</head>
<body>
<input type=button name=button1 onclick="ConvertTemp()"
value="气温转换">
</body>
</html>
点击浏览范例2-19效果。
2.4.2 VBScript中的函数
所谓函数,类似于过去所学的三角函数,就是别人将一些复杂的功能编成了一个函数,你不需要知道函数内部是怎么计算的,只要会使用就行。恰当的使用已有的函数可以节省大量的时间。下面介绍常用的几种VBScript中的函数。
1.转换函数
通过转换函数将子数据类型转换成需要的数据类型,常用的转换函数见表2-3。
| 表2-3
常用的转换函数 |
函数 |
说明 |
| CDate(Variant) |
转换成日期子类型 |
| CStr(Variant) |
转换成字符串子类型 |
| CByte(Variant) |
转换成Byte子类型 |
| CInt(Variant) |
转换成整数子类型 |
| CBool(Variant) |
转换成布尔子类型 |
2.字符串函数
在VBScript中,包含很多处理字符串的函数,主要功能是:删除字符串前后的空格符、比较两个字符串、转换字符串的大小写字母等。常用的字符串函数见表2-4。
| 表2-4
常用的字符串函数 |
函数 |
说明 |
| Len(string) |
返回字符串string里的字符数目 |
| Trim(string) |
将字符串string前后的空格去掉 |
| Mid(string,start,length) |
从字符串string的start字符开始取得length长度的字符串,如果省略第三个参数表示是取从start字符开始到字符串结尾的字符串 |
| Left(string,length) |
从字符串string的左边取得length长度的字符串 |
| Right(string,length) |
从字符串string的右边取得length长度的字符串 |
| LCase(string) |
将字符串string里的所有大写字母转化为小写字母 |
| UCase(string) |
将字符串string里的所有小写字母转化为大写字母 |
| StrComp(string1,string2) |
返回string1字符串与string2字符串的比较结果,如果两个字符串相同,则返回0 |
| InStr(string1,string2) |
返回string1字符串在string2字符串中的位置值 |
3.日期和时间函数
在VBScript中,可以使用日期和时间函数来得到各种样式的日期和时间。常用的日期和时间函数见表2-5。
| 表2-5
常用的日期和时间函数 |
函数 |
说明 |
| Now() |
取得系统当前的日期和时间 |
| Date() |
取得系统当前的日期 |
| Time() |
取得系统当前的时间 |
| Year(Date) |
取得给定日期的年份 |
| Month(Date) |
取得给定日期的月份 |
| Day(Date) |
取得给定日期是几号 |
| Hour(time) |
取得给定时间是第几小时 |
| Minute(time) |
取得给定时间是第几分钟 |
| Second(time) |
取得给定时间是第几秒钟 |
| WeekDay(Date) |
取得给定日期是星期几的整数,1表示星期日,2表示星期一,以此类推 |
| DateDiff(“Var”,Var1,Var2) |
计算两个日期或时间的间隔。其中:Var表示日期或时间间隔因子,Var1表示第一个日期或时间,Var2表示第二个日期或时间 |
| DateAdd(“Var”,var1,Var2) |
对两个日期或时间作加法 |
| FormatDateTime(Date,vbShortDate) |
转化为短日期格式 |
| FormatDateTime(Date,vbLongDate) |
转化为长日期格式 |
| FormatDateTime(Date,vbShortTime) |
转化为短时间格式 |
| FormatDateTime(Date,vbLongTime) |
转化为长时间格式 |
4.数学函数
常用的数学函数见表2-6。
| 表2-6
常用的数学函数 |
函数 |
说明 |
| Abs(number) |
返回一个数的绝对值 |
| Sqr(number) |
返回一个数的平方根 |
| Sin(number) |
返回角度的正弦值 |
| Cos(number) |
返回角度的余弦值 |
| Tan(number) |
返回角度的正切值 |
| Atn(number) |
返回角度的反正切值 |
| Log(number) |
返回一个数的对数值 |
| Int(number) |
取整函数,返回小于等于number的第一个整数 |
| Ran(number) |
以number为种子产生随机数 |
| Ubound(数组名称,维数) |
返回该数组的最大下标数,如数组只有一维,可以省略维数 |
5.检验函数
检验函数通常用来检验某变量是否是某种类型,常用的检验函数见表2-7。
| 表2-7
常用的检验函数 |
函数 |
说明 |
| VarType(Variant) |
检查变量Variant的值,函数值为该变量的数据类型,0表示空(Empty),2表示整数,7表示日期,8表示字符串,11表示布尔变量,8129表示数组 |
| IsNumeric(Variant) |
检验变量Variant的值,如果Variant是数字类型,则函数值为True |
| IsDate(Variant) |
检验变量Variant的值,如果Variant是日期类型,则函数值为True |
| IsNull(Variant) |
检验变量Variant的值,如果Variant是无效值,则函数值为True |
| IsEmpty(Variant) |
检验变量Variant的值,如果Variant没有设定值,则函数值为True |
| IsObject(Variant) |
检验变量Variant的值,如果Variant是对象类型,则函数值为True |
| IsArray(Variant) |
检验变量Variant的值,如果Variant是数组类型,则函数值为True |
6.输入与输出函数
输入函数作用是显示一个输入对话框,用于用户输入信息。语法如下:
String=InputBox(prompt,[,title][,default])
注意:“[”和“ ]”中的内容表示可选项。
说明: ▲ String:文本框中的内容,即用户输入的信息。
▲ Prompt:显示在对话框中的文字。
▲ Title:显示在对话框标题中的文字。
▲ Default:指定对话框中文本输入框内的默认字符串。
输出函数作用是弹出一个消息框,用于告知用户信息。语法如下:
MsgBox(prompt,[,title][,button])
▲ Prompt:显示在消息框中的文字。
▲ Title:显示在消息框标题中的文字。
▲ Button:指定消息框的外框和按钮的类型。
下例就是使用这两个函数的范例。
范例2-20:输出函数和输入函数的使用
<html>
<head>
<title>InputBox和MsgBox用法范例</title>
</head>
<body>
<script language="VBScript">
like1=InputBox("您的第一爱好是","输入")
like2=InputBox("您还爱好的是","输入")
MsgBox "您的爱好是" & like1 & "和" & like2
</script>
</body>
</html>
点击浏览范例2-20效果。
要注意,输入与输出函数只能在客户端运行,不能在服务器端运行。
|