6.2.2 VBScript运算符与内置函数
1. VBScript运算符
VBScript继承了Visual Basic所有类别的运算符,包括算术运算符、比较运算符、逻辑运算符和连接运算符。
其中算术运算符用于连接运算表达式,比较运算符用于比较数值或对象,而逻辑运算符主要用于连接逻辑变量,连接运算符用来连接两个字符串。
表6-2列出了VBScript的各种运算符名称及描述。
表6-2 VBScript 运算符
在这些运算符中,算术运算符是最常用的,它返回一个数值。例如,
a=10
b=22
s=a+b
比较运算符和逻辑运算符返回一个逻辑值True或False,在条件语句中使用较多。例如,
Dim s,a
s=(2>3)
if s then
a=0
else
a=1
连接运算符用于连接两个字符串,它可以使用“&”或“+”,其中“+”容易与算术运算符中的“+”混淆,所以一般用“&”来连接两个字符串,也可以用它来连接字符串变量。
Dim str1,str2
str1="你好!"
str2=str1&"欢迎光临! "
Response.write str2
当多种运算符出现在同一表达式中,先运算( )内的内容;没有( )或在同一个( )内,运算符优先级如下:算术运算符优先,连接运算符其次,比较运算符再次,逻辑运算符最后。
2. VBScript内置函数
VBScript中有许多内置函数,这些内置函数将有一定功能的语句组合在一起以供使用。使用内置函数可以节省大量的时间,使程序代码变得更简单易懂。VBScript继承了Visual Basic中的一些函数,下面只学习这些函数中的最常用的几种。
1)转换函数
我们已经了解到Variant变量有几种子类型,可以通过转换函数进行子类型的强制转换。强制转换的目的是使数据类型相匹配,避免出现类型错误。常用的转换函数如表6-3所示。
表6-3 几种常用的转换函数及功能
例如,
Dim a,b,str
a=35
b=51
str=CStr(a)& "+"&CStr(b)& "="&CStr(a+b)
Response.write str
其中,使用CStr(a)将整数类型的35转化为字符串类型的“35”,并把这个字符串作为函数的返回值。这段程序的运行结果是输出字符串“35+51=86”。
2)字符串相关函数
在ASP程序开发中,字符串使用非常频繁,如用户名和用户密码、用户留言等都是当做字符串来处理的。很多时候要对字符串进行截取,大小写转换等操作,必须掌握常用的字符串处理函数进行这些操作。常用的字符串处理函数如表6-4所示。
表6-4 常用的字符串处理函数及功能
下面的例子简要说明几个函数的使用方法。
Dim str,email
str=Mid("Hello,the world!",7,4)'返回“the”,注意后面还有一个空格
str=Trim(str) '去掉两端的空格,返回“the”
email="abc@hotmail.com"
if InStr(email,"@")>0 then '返回数值4,此方法可以初步判断email是否正确
Response.write "email格式正确!"
else
Response.write "email格式错误!"
end if
Split的用法稍微复杂一些,下面的例子中把用户的IP地址拆分成一个数组,并显示IP后面部分。
---------------------------清单6-2 6-2.asp --------------------------
<html>
<head>
<title>Split函数的使用示例</title>
</head>
<body>
<%
Dim IP,array
IP="211.69.32.65"
array=split(IP,".")'以 "." 为分界符拆分IP成有四个元素的一维数组array
Response.write "IP地址: ∗.∗."&array(2)&"."&array(3)
%>
</body>
</html>
--------------------------------------------------------------------
调试结果如图6-10所示。
图6-10 6-2.asp的调试结果
3)日期和时间函数
在VBScript中,可以使用日期和时间函数来得到各种格式的日期和时间,比如在论坛中要使用Now()函数来记载留言日期和时间,常用的函数如表6-5所示。
表6-5 常用日期和时间函数
下例是关于日期和时间函数的使用方法。
--------------------------清单6-3 6-3.asp ---------------------------
<HTML>
<HEAD>
<TITLE>计算For循环所用的时间</TITLE>
</HEAD>
<BODY>
<%
Dim startTime,i,j
j=0
startTime=timer() '获取当前时间(0时开始至当前时刻的时间)
For i=1 To 100000 Step 1 '这是一个步长为1的For循环
j=j+1
Next
response.write "这个For循环所用的时间为:"&(Timer()-startTime)∗1000&"
毫秒"
%>
</BODY>
</HTML>
--------------------------------------------------------------------
6-3.asp的调试结果如图6-11所示。
图6-11 时间函数与循环结构的应用
4)数学函数
常用的数学函数如表6-6所示。
表6-6 常用的数学函数功能
续表
例如,使用FormatNumber(Number,NumDigitsAfterDecimal)函数,将6-3.asp中的时间保留2位小数,可以把语句
Response.write "循环所用的时间为:" &(Timer()-startTime)∗1000&"毫秒
改为:
Response.write "循环所用的时间为:"
&FormatNumber((Timer()-startTime)∗1000,2)&"毫秒"
5)检验函数
检验函数通常用来检验某变量是否是某种类型,常用的检验函数如表6-7所示。
表6-7 常用的检验函数及功能
例如,
<% Dim str,blo
str="ASP"
blo=IsNull(str)'不是无效值,返回False
Response.write blo
%>
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。