函数是可以向其传递参数并能够返回值的可重复使用的代码块,在Vbscript中内置了许多函数,方便我们使用。
第一节、时间和日期函数
在Vbscript中可以使用时间和日期函数,返回系统的日期和时间。
1、Now 函数
格式:Now()
说明:返回当前的日期和时间值。
示例 sl3-1.asp
<html> <head> <title>时间日期</title> </head> <body> <% response.write Now %> <br> <% response.write Now() %> </body> </html> |
示例解读:
在编程语言中函数的一个特点是后面带有圆括号,一般来说定义和调用函数这个圆括号都不能省略,但在Vbscript中调用函数时可以省略圆括号,如本例中的Now和Now()返回结果是一样的。
2、Date 函数
格式:Date()
说明:Date函数返回当前系统日期。
示例 sl3-2.asp
<html> <head> <title>时间日期</title> </head> <body> <% response.write Date() %> <br> <% response.write Date %> </body> </html> |
3、Time 函数
格式:Time()
说明:Time 函数返回当前系统时间:
示例 sl3-3.asp
<html> <head> <title>时间日期</title> </head> <body> <% response.write Now %> <br> <% response.write Date %> <br> <% response.write Time %> </body> </html> |
4、Month 函数
格式:Month(date)
参数: date为任意日期表达式。
说明:返回当前月。
Month函数和year年,day日,hour时,minute分,second秒是类似的,这些函数会将参数给定的值,转换为相应的年,月,日,时分,秒。
示例 sl3-4.asp
<html> <head> <title>时间日期</title> </head> <body> <% response.write Month(date) '返回今天是那个月 response.write "<br>" response.write Month(Now) '返回今天是那个月 response.write "<br>" response.write Month(#2004-12-25#) '返回给定日期的月份 response.write "<br>" response.write year(Now) ''返回当前是那一年 response.write "<br>" response.write day(Now) '返回当前是那一日 response.write "<br>" response.write hour(Now) '返回当前的时 response.write "<br>" response.write minute(Now) '返回当前的分 %> </body> </html> |
5、Weekday 函数
格式:Weekday(date, [firstdayofweek])
参数:
date:
可以代表日期的任意表达式。
Firstdayofweek:
可选,用来指定一周的第一天的常数。默认值周日为1。
示例 sl3-5.asp
<html> <head> <title>时间日期</title> </head> <body> <% response.write Weekday(date)-1 '返回当前日期是周几 response.write "<br>" response.write Weekday(#2005-12-23#)-1 '返回指定日期是周几 %> </body> </html> |
6、DateDiff 函数
格式:DateDiff(interval, date1, date2)
参数:
interval 指定date1和date2之间的时间间隔。取值如下所示:年yyyy,月m,日d,时h,分m,秒s,周ww。
date1, date2 日期表达式。用于计算的两个日期。
说明:返回两个日期之间的时间间隔。
示例 sl3-6.asp
<html> <head> <title>asp简单程序</title> </head> <body> <% dim m,d1,d2 '返回从05年2月至今日有几个月 m=datediff("m",#2005/2/1#,Date) '返回从05年2月至今日有几天 d1=datediff("d",#2005-2-1#,Date) '返回现在到2005年1月1日有多少天 d2=datediff("d",Date,#2005-1-1#) response.write m response.write "<br>" response.write d1 response.write "<br>" response.write d2 %> </body> </html> |
第二节、转换函数
在Vbscript中,表达式中的变量一般会根据情况进行自动转换,但是有的时候这种转换会造成类型不匹配,这时就需要使用转换函数进行转换。转换函数常用的有以下几个。
1、转换为字符串类型
CStr(expression)
将表达式expression转换为字符串
示例 sl3-7.asp
<html> <head> <title>asp简单程序</title> </head> <body> <% dim a,b,c '下面定义两个数字类型的数据 a=10 b=20 ‘使用CStr函数把数字转换为字符串后相加 c=CStr(a)+CStr(b) response.write c '输出1020 %> </body> </html> |
2、转换为日期类型
CDate(date)
参数date可以是日期或时间类型的数据,也可以是数字,数字的整数部分被转换为日期,分数部分被转换为从午夜开始计算的时间。转换函数CDate()根据系统的区域设置转换为相应的日期格式。
示例 sl3-8.asp
<html> <head> <title>asp简单程序</title> </head> <body> <% dim a,b,c a = "October 19, 1962" ' 定义日期,October(十月) response.write CDate(a) ' 转换为日期数据类型。 response.write "<br>" b="4:35:47 PM" ' 定义时间。 response.write CDate(b) ' 转换为日期数据类型。 response.write "<br>" c=5.65 ' 定义数字。 response.write CDate(c) ' 转换为日期数据类型。 %> </body> </html> |
4、转换为数字
CInt(expression)转换为整数
CLng(expression)转换为长整数
(注:Int和Fix函数也能将小数转换为整数)
CByte(expression)转换为Byte类型
CSng(expression)转换为Single类型
CDbl(expression)转换为Double 类型
CCur(expression)转换为Currency类型
示例 sl3-9.asp
<html> <head> <title>asp简单程序</title> </head> <body> <% dim a 'CInt和CLng函数总是四舍五入 response.write CInt(2345.5678)'输出2346 response.write "<br>" response.write CLng("2345.5678")'输出2346 response.write "<br>" %> </body> </html> |
第三节、数学函数
下面是一些常用的数学函数
1 abs(number)返回数字的绝对值。
2 sqr(number)返回数值的平方根。
3 sin(number)返回某个角的正弦值。
4 cos(number)返回某个角的余弦值。
5 tan(number)返回某个角的正切值。
6 atn(number) 返回数值的反正切值。
7 log(number)返回数值的自然对数。
8 int(number)返回数字的整数部分,对于负数注意,-8.4转为-9。
Fix(number)返回数字的整数部分,对于负数注意,-8.4转为-8。
9 rnd()返回一个小于 1 但大于或等于 0 的值。rnd函数在使用中可以用语句Randomize进行初始化;
10 ubound(数组名,数组维数)返回数组的最大下标数
11 formatnumber(带有小数的数字,要保留的小数点位数)
示例 sl3-10.asp
<html> <head> <title>asp简单程序</title> </head> <body> <% dim a a=-3.141592 '删除小数点的函数,对于负数有所区别; response.write int(a) '显示-4 response.write "<br>" response.write fix(a) '显示-3 response.write "<br>" '保留小数点的位数试验,保留两位小数点 response.write formatnumber(a,2) '显示-3.14 %> </body> </html> |
示例 sl3-11.asp
<html> <head> <title>asp简单程序</title> </head> <body> <% '随机函数rnd在页面加载时会产生一个小于1大于或等于0的值 response.write rnd() response.write "<br>" '在刷新页面时要产生新的随机数,就得进行初始化 Randomize '这个函数能够初始化位于它下面的rnd response.write rnd() response.write "<br>" '页面刷新时产生一个1-20之间的随机整数 response.write int((20*rnd())+1) %> </body> </html> |
第四节、字符串函数
1、转换为字符串
CStr(expression) 返回表达式,该表达式已被转换为 String 子类型的 Variant。
2、字符串去空格函数
Trim(string) 将字符串前面和后面的空格去掉
示例 sl3-12.asp
<% dim a a=" Vbscript " response.write a response.write "<br>" response.write Trim(a)'显示时,去掉字符串两边的空格。 %> |
3 字符串长度获取函数
(1) len(string)返回字符串内字符的数目。
(2) Left(string, length) 返回从字符串的左边算起的字符。
(3) Right(string, length)返回从字符串的右边算起的字符。
(4) Mid(string,start,ength)
参数:
string给定字符串
start指定开始位置
ength指定返回的数目
示例 sl3-13.asp
<% dim a a="Vbscript,Javascript" '字符串中一共有多少字符 response.write len(a) '显示19 response.write "<br>" '从左边算起指定一个位置,返回从开始到该位置的字符 response.write Left(a,8)'显示Vbscript response.write "<br>" '我想返回中间的"script,Java" response.write Mid(a,3,11) %> |
4 字符串比较函数
StrComp(string1,string2)对string1和string2进行二进制比较,
如果string1 小于 string2 返回 -1
如果string1 等于 string2 返回 0
如果string1 大于 string2 返回 1
如果string1 或 string2 为 Null 返回 Null
示例 sl3-14.asp
<% dim a,b,c a="Vbscript" b="Vbscript" c="Javascript" '如果a与b相等,则返回0 response.write StrComp(a,b) response.write "<br>" '如果a大于c则返回1,反之返回-1 response.write StrComp(a,c) response.write "<br>" response.write StrComp(c,a) %> |
5 字符串替换函数
Replace(expression, find, replacewith)返回字符串,其中指定数目的某子字符串find被替换为另一个子字符串replacewith;
示例 sl3-15.asp
<% '用Java替换Vb response.write replace("Vbscript","Vb","Java") %> |
6 字符串拆分函数
Split(string,delimiter)将字符串string拆分成一维数组,包含其子字符串和分隔符,delimiter是可选的,是用于标识子字符串界限的字符,如果省略,使用空格 (" ") 作为分隔符;
示例 sl3-16.asp
<% dim myarray '以"@"为分界符进行拆分 myarray=split("Vb@scr@ipt@Java", "@") response.write myarray(0)&"<p>" response.write myarray(1)&"<p>" response.write myarray(2)&"<p>" response.write myarray(3) %> |
7 返回字符位置
InStr(string1,string2)返回string1字符串在string2字符串中第一次出现的位置;
示例 sl3-17.asp
<% dim a,b,c a="@Vbscript" b="Vbscr@ip@t" c="Vbscript" '返回@第一次出现的位置,如果返回0表示不存在 response.write InStr(a,"@")&"<p>" response.write InStr(b,"@")&"<p>" response.write InStr(c,"@") %> |
第五节 检验函数
1 IsNumeric(expression)
检验表达式expression的值是否为数字,如果为数字,函数返回 True;否则函数
返回 False;
2 IsDate(expression)
如果表达式expression是日期或时间类型,则 IsDate 函数返回 True;否则函数返回 False
3 IsNull(expression)
如果expression为Null,则IsNull函数返回 True,即表达式不包含有效数据,否则 IsNull 返回 False。如果 expression由多个变量组成,则表达式的任何组成变量中的 Null 都会使整个表达式返回 True。Null 值指出变量不包含有效数据。Null 与 Empty 不同,后者指出变量未经初始化。Null 与零长度字符串 ("") 也不同,零长度字符串往往指的是空串。
4 IsEmpty(expression)
IsEmpty 用于判断一个变量是否已初始化,如果变量未初始化或显式地设置为 Empty,则函数 IsEmpty 返回 True;否则函数返回 False。如果 expression 包含一个以上的变量,总返回 False。
5 IsObject(expression)
检查表达式expression的值,如果expression是对象类型,函数返回True
6 IsArray(expression)如果expression是数组类型,函数返回True
7 VarType(varname)
检查变量varname的值,返回一些数字,不同的数字有不同的含义
常数 | 值 | 描述 |
vbEmpty | 0 | Empty(未初始化) |
vbNull | 1 | Null(无有效数据) |
vbInteger | 2 | 整数 |
vbLong | 3 | 长整数 |
vbSingle | 4 | 单精度浮点数 |
vbDouble | 5 | 双精度浮点数 |
vbCurrency | 6 | 货币 |
vbDate | 7 | 日期 |
vbString | 8 | 字符串 |
vbObject | 9 | Automation 对象 |
vbError | 10 | 错误 |
vbBoolean | 11 | Boolean |
vbVariant | 12 | Variant(只和变量数组一起使用) |
vbDataObject | 13 | 数据访问对象 |
vbByte | 17 | 字节 |
vbArray | 8192 | 数组 |