学习导航
- 日期时间函数
- 数值数组函数
- 判断函数
- 字符串函数
- 其他函数
5.1 VBScript 内置函数
在前面,我们介绍了函数的使用与建立方法,其实有很多函数是不用自己动手来建立的,VBScript 早就准备好了许多常用的函数来供您调用,下面就一一来说明一些常用的函数。
5.2 日期与时间函数
VBScript 提供了许多显示日期与时间的函数,如表:
函数 | 用途 |
Now | 显示今天的日期与现在的时间 |
Date | 显示今天(计算机系统)的日期 |
Time | 显示现在(计算机系统)的时间 |
Year | 显示本年的年份 |
Month | 显示本月的月份 |
Day | 显示今天的日期 |
Hour | 显示现在的时间几点钟 |
Minute | 显示现在的时间几点钟 |
Second | 显示现在的时间几秒钟 |
<script language="vbs"> msgbox "现在是" & Now() msgbox "今天的日期" & Date() msgbox "现在的时间" & Time() msgbox "今天的日期是" & Year(Date) & "年" & month(Date) & "月" &_ Day(Date) & Day(Date) & "日" msgbox "现在的时间是" & Hour(Now) & "时" & Minute(Now) & "分" &_ Second(Now) & "秒" </script>
这个例子中,now(),date(),time()这三个内置函数不需要传入参数,而year(),month(),day(),hour(),minute(),second()是需要传入参数的。
<script language="vbs"> SetTimeOut "Clock",1000 sub Clock() H=Hour(Now) M=Minute(Now) S=Second(Now) NowTime="现在时间是" & H & "点" & M & "分" & S & "秒" NowT.InnerHtml=NowTime SetTimeOut "Clock",1000 end sub </script> <center id="NowT"></center>
程序一开始会执行到SetTimeOut “Clock”,1000 ,这段程序代码的意思1秒之后执行子程序”Clock”,”SetTimeOut”这个语法可以让计算机上在隔一段时间后去执行某个子程序,它的格式如下:SetTimeOut “子程序名称”,时间
其中的时间是以千分之一秒为单位,也就是1秒钟,在1秒之后执行子程序“Clock”,所以写成SetTimeOut “Clock”,”1000”;执行子程序“Clock”时就会使用到时间函数将现在的时间分别存放在变量‘H’,‘M’,‘S’中,接着再用 NowT.InnerHtml方法将现在的时间写如网页里, InnerHtml也是浏览器提供的一种方法,她的用途将文字写到指定的HTML标记,前面的“NowT”就是指定要写入的HTML标记。
5.3 sqr()函数
sqr()函数可以返回参数的平方根!
<script language="vbs"> a=inputbox("请输入一个整数") msgbox a & "的平方根为" & sqr(A) </script>
5.4 abs()函数
abs()函数可以返回一个数的绝对值
<script language="vbs"> a=inputbox("请输入一个整数") msgbox a & "的绝对值为" & abs(a) </script>
5.5 IsNumeric() 函数
IsNumeric函数可以侦测传入的参数是否为数字,如果是数字,那么就会返回True,如果不是数字,则返回False
<script language="vbs"> a=inputbox("请输入一个整数") do while not IsNumeric(a) a=inputbox("您输入的不是整数,请重新输入!") loop msgbox a & "的绝对值为" & abs(a) </script>
5.6 MsgBox() 函数
弹出一个信息框
格式: msgbox (“显示内容”,图标名称)
名称 值 说明
VbCritical 16 显示“重要信息”图标
VbQuestion 32 显示“询问符号”图标
VbExclamation 48 显示“警告符号”图标
VbInformation 64 显示“信息符号”图标
<script language="vbs"> msgbox "重要信息",vbcritical '16 msgbox "询问符号",vbquestion '32 msgbox "警告符号",vbexclamation '48 msgbox "信息符号",vbinformation '64 </script>
<script language="vbs"> msgbox "发现系统漏洞,请确定修补漏洞!",16,"金山毒霸提醒您" </script>
5.7 msgbox (“显示内容”,按钮名称)
名称 值 说明
VbOKOnly 0 只显示“确定”按钮
VbOKCancel 1 只显示“确定”及“取消”按钮
VbAbortRetryIgnore 2 显示“终止”,“重试”及“忽略
VbYesNoCancel 3 显示“是”,“否”及“取消”
VbYesNo 4 显示“是”及“否”按钮
VbRetryCancel 5 显示“重试”及“取消”按钮
<script language="vbs"> msgbox "按钮范例",0 msgbox "按钮范例",1 msgbox "按钮范例",2 msgbox "按钮范例",3 msgbox "按钮范例",4 msgbox "按钮范例",5 </script>
<script language="vbs"> msgbox "图标+按钮",3+32 </script>
5.8 判断用户所按下的按钮
按钮值
常数 值 按钮
VbOk 1 确定
VbCancel 2 取消
VbAbort 3 终止
VbRetry 4 重试
VbIgonre 5 略过
VbYes 6 是
VbNo 7 否
<script language="vbs"> do do a=inputbox("请输入一个数字","计算绝对值") loop until IsNumeric(a) msgbox a & "的绝对值" & abs(a) loop until 2=msgbox ("是否要继续",1+32) </script>
5.9 UBound()函数与LBound()函数
格式:UBound(数组名)
将数组名传入这两个个函数可以得到数组的上限和下限,在使用动态数组的时候经常会用到,因为使用动态数组通常都是根据当时的情况来配置大小,所以无法实现得知数组的大小,这时就必须使用到这个函数。
<script language="vbs"> dim a(3) msgbox "a的数组的最低值为" & LBound(a) msgbox "a的数组的最高值为" & UBound(a) </script>
<script language="vbs"> dim a(3) msgbox "a的数组的最低值为" & LBound(a) msgbox "a的数组的最高值为" & UBound(a) </script>
<script language="vbs"> dim a(10) for i=Lbound(a) to Ubound(a) total=total+i next msgbox "total=" & total </script>
5.10 Int() 函数
这个函数必须传入一个参数,并将这个参数的整数部分返回。
<script language="vbs"> a=3.9359459 msgbox "a的整数为" & int(a) </script>
5.12 Rnd()函数
这个函数可以产生介于0~1之间的随机数,使用加上Randomize来声明要使用随机数。由于Rnd()所产生的随机数时介于0~1之间的数,所以您必须用一些小技巧才可以使用,若要产生一个介于N~M之间的随机数,可以套用下面的公式:
Randomize
R=Int(Rnd()*M-N+1)+N
<script language="vbs"> randomize msgbox int(rnd()*5-0+1)+0 </script>
5.13 Instr()函数
这个函数用来搜索字符串。
格式:Instr(“被搜索的字符串”,”欲搜索的字符串”)
第一个参数是被搜索的字符串,第二个是想要在第一个参数中找到的字符串,如果搜索到想要的字符串,就会返回字符串在被搜索的字符串中由左边算起的第几个字符。
<script language="vbs"> a=inputbox("请输入一个英文字母") letter="ABCDEFGHIJKLMNOPQRSTUVWXYZ" b=instr(letter,ucase(a)) Msgbox a & "是英文字母的第" & b & "个字母" </script>
有时候搜索并不想从第一个字符开始搜索
Instr(“开始搜索的文字”,“被搜索的字符串”,“欲搜索的字符串”)
<script language="vbs"> a="HAPPYHAPPYBOOK" b=instr(a,"PY") c=instr(5,A,"PY") msgbox "b=" & b & " c=" & c </script>
5.14 Len()函数
获取字符串的长度 格式:Len("字符串")
<script language="vbs"> a=inputbox("HAPPY") b=len(a) msgbox "您输入的字符串长度为::" & b </script>
<script language="vbs"> do while len(A)<>1 a=inputbox("请输入一个英文字母") loop letter="ABCDEFGHIJKLMNOPQRSTUVWXYZ" b=instr(letter,ucase(a)) msgbox a & "是英文字母的第" & b & "个字" </script>
5.15 InstrRev()函数
InstrRev(“被搜索的字符串”,“欲搜索的字符串”,开始位的置)
它和 Instr 的区别就是一个是从头开始搜索,一个从后开始
<script language="vbs"> a="VBScript IS EASY" b=InstrRev(a,"S") c=InstrRev(a,"S",5) msgbox b msgbox c </script>
5.16 Hex(),Oct()函数
十进制转换成十六进制和八进制
<script language="vbs"> a=10000 b=hex(A) c=oct(A) msgbox a & "的十六进制是" & b msgbox a & "的八进制是" & c </script>
5.17 TRIM()函数
去掉字符串两边的空格
<script language="vbscript"> a=" VBSCRIPT " msgbox a a=trim(a) msgbox a </script>
5.18 Mid(),left(),right()函数
left(“字符串”,取几个字)
right(“字符串”,取几个字)
mid(“字符串”,第几个字开始,取几个字)
<script language="vbs"> a="VBSCRIPT" b=left(a,5) c=right(a,4) d=mid(a,3,3) msgbox "b=" & b & " c=" & c & " d=" & d </script>
5.19 Replace()函数
Replace(“字符串”,“要被替代的字”,“替代后的字”)
<script language="vbs"> a="SSSSSSSYDDDDDDDDYJ" msgbox a b=replace(a,"Y","A") msgbox b </script>
5.20 ASC()函数 CHR()函数
一个是将文字转化为ASCII
一个是将ASCII转化为文字
<script language="vbs"> a=inputbox("请输入一个文字") msgbox asc(a) b=inputbox("请输入一个数字") msgbox chr(b) </script>
5.21 String()函数
重复字符串函数,这个函数要传入两个参数,第一个参数必须是数值,代表所要重复的次数,第二个参数只能是文字,代表所要重复的字。
格式: Sring(重复几次,“要重复的字”)
<script language="vbs"> a=string(5,"B") msgbox a </script>
5.22 Filter()函数
这个数组搜索函数可以搜索数组的数据,将搜索到数据的数组组成一个新数组返回。
格式:Filter(要搜索的数组,“要搜索的字”)
<script language="vbs"> dim a(3) a(0)="HAPPYWIN" a(1)="HAPPYLEARN" a(2)="LEARN" a(3)="LEARNHAPPY" b=filter(a,"HAPPY") for i=0 to ubound(b) msg=msg & "b(" & i & ")=" & b(i) & vbcrlf next msgbox msg </script>
5.23 datepart("w",date())
一个星期几的返回值
日期 返回值
星期日 1
星期一 2
星期二 3
星期三 4
星期四 5
星期五 6
星期六 7
<script language="vbs"> msg=datepart("w",date()) Msgbox msg </script>