活动服务器页面中使用的所有关键字和语句的参考。 项目按功能分组,并包含简短描述和使用示例。
这包含活动服务器页面中所有语言元素的快速参考。
语句 |
目的 |
数组
|
此函数创建一个数组实例。 此函数的参数是您希望看到数组包含的元素。 也可以完全没有参数。aOption = Array("yes", "no", "unknown")
|
清除
|
清除数组所有元素的子例程。 如果元素是数字值,则它们将全部设置为零。 如果元素是字符串,则它们将全部变为空。
|
筛选
|
有选择地包含或排除数组中的元素。 可选的第三个参数是一个布尔值,指示是否包含项目。Filter(aArray, "remove", False)
|
连接
|
通过连接数组中的所有元素来构建一个字符串。 在每个元素之间插入一个“粘合字符串”。
|
下界
|
返回数组的下界,表示数组可能使用的最小数组索引。 ASP 中的所有数组都从索引 **0** 开始,因此您不应该需要使用它。
|
重新声明
|
在数组已声明后使用此方法重新设置数组的维度(或调整数组大小)。 如果使用 **Preserve** 关键字,则现有元素不会在该过程中被破坏。ReDim Preserve aField(nCount + 10)
|
拆分
|
接受一个字符串参数,并通过将字符串“拆分”为多个元素来创建一个数组。 字符串根据作为第二个参数传递的“分隔符”进行拆分。aName = Split("joe,bill,john", ",")
|
上界
|
返回数组的上界,表示最后一个可能的数组索引。 这通常用于获取数组的大小(这反过来可以用于 For...Next 循环以迭代元素)
|
语句 |
目的 |
常量
|
用于声明一个常量值(一个在程序执行过程中永远不会改变的值)
|
声明
|
用于在程序中声明一个变量。 变量可以声明为“全局”变量,这意味着它对整个脚本可用,也可以声明为局部变量(在过程内部)
|
函数
|
用于在脚本中声明一个函数。 函数是一个应该返回值的程序,但这在活动服务器页面中没有强制执行。 Function YearsOld(dBirthDate)
YearsOld = DateDiff("y", dBirthDate, Now())
End Function
|
子例程
|
用于在脚本中声明一个子例程。 子例程不能返回值给调用者。 您不必在调用函数或子例程之前声明它们。 Sub HelloWorld(sName)
Response.Write "Hello " & sName
End Sub
|
语句 |
目的 |
调用
|
调用一个过程(子例程或函数)。 如果用于调用一个函数,则返回值不能被赋值(如果您想使用返回值,请省略 **Call** 关键字) Call SayHello("Bill Gates")
' alternative way to call a subroutine (notice no parentheses necessary)
SayHello "Bill Gates"
|
计算
|
计算动态构建的活动服务器页面代码。 换句话说,如果您构建了一个包含 ASP 代码的字符串(在运行时),则可以使用 **Eval** 执行该代码。fArea = Eval("3.14159 * fRadius * fRadius")
|
执行
|
以编程方式执行 ASP 脚本。 允许您在运行时执行 ASP 页面。 执行此操作的大多数正常方法(例如使用服务器端包含)将处理脚本,无论它是否被使用。 对于 **Execute**,您可以有条件地处理 ASP 脚本。 if (nThemeNo = 1) then
Execute("/theme/fantasy/header.asp")
Else
Execute("/theme/modern/header.asp")
End If
|
退出
|
用于中断函数、子例程或许多循环结构的执行。 Exit Function
Exit Sub
Exit For
Exit Do
Exit While
|
选择情况
|
这允许您创建一个多分支条件结构,类似于一系列 **If Then ... Else If ... Else If ... Else ... End If**。 Select Case nDayOfWeek
Case vbSunday : Response.Write "Day of Rest"
Case vbSaturday : Response.Write "Shopping Day"
Case vbMonday :
Case vbThursday : Response.Write "Dance Class"
Case Else : Response.Write "Work is Fun!"
End Select
|
语句 |
目的 |
Do 循环
|
do 循环有两种不同的变体。 **Do While** 在条件为 _真_ 时重复一组语句,而 **Do Until** 在条件为 _假_ 时重复一组语句。 您可以使用 **Exit Do** 语句退出 **Do ... Loop** 语句。Do While I < 0
I = I + 1
Loop
Do Until rs.EOF
rs.MoveNext
Loop
|
对于每个
|
在处理集合时,您可以使用此函数迭代每个项目。For Each sKey In oHash.Keys
Next
|
对于下一个
|
迭代具有已知起始值和结束值以及可选增量值的数字序列。 您可以使用 **Exit For** 语句强制执行中断 **For ... Next** 循环。For I = 1 To 10
Response.Write " I = " & I
Next
For I = 10 To 1 Step -1
Response.Write " I = " & I
Next
|
While 循环
|
在条件为真时重复一组语句。 您可以使用 **Exit While** 语句强制执行中断 **While** 循环。While I < 10
Response.Write "I = " & I & "<br>"
I = I + 1
If I = 6 Then Exit While
Wend
|
语句 |
目的 |
绝对值
|
计算表达式的绝对值(将负结果转换为正结果)
|
反正切
|
三角函数,用于计算值的反正切
|
余弦
|
三角函数,用于计算值的余弦
|
指数
|
计算表达式 e ^ y 的值,其中 e 是一个常数,表示自然对数的底(也称为奈皮尔常数)。
|
定点
|
将数字转换为整数。 负数被向上取整(而不是向下取整,这是 **Int** 的工作方式)。 因此,像 -5.99235 这样的数字将产生 -5 的值。
|
整数
|
将数值转换为整数值。 它实际上与“Floor”函数的作用相同,因为它截断了数字的小数部分(不执行任何舍入)。
|
对数
|
计算数字的自然对数。 这在数学中通常表示为 ln(y)
|
模
|
计算两个数字的模(或余数)。 这就像 **+** 或 **/** 一样,是一个布尔运算符。 10 Mod 3 的结果是 1,因为 3 最多能进入 10 次,剩下 1(3 * 3 = 9,10 - 9 = 1)
|
随机化
|
对随机数生成器进行播种。 不返回值,而是准备脚本通过 **Rnd** 函数产生真正的随机数。
|
随机数
|
一个函数,它返回一个大于或等于零且小于 1 的随机数。 您应该始终在调用此函数之前调用 **Randomize**。
|
舍入
|
一个将数字四舍五入到最接近的整数的函数。如果数字的小数部分小于 0.5,则数字将向下舍入,否则数字将向上舍入。
|
Sgn
|
执行符号函数,该函数仅返回三个可能的值。如果参数为负数,则为 **-1**;如果数字为正数,则为 **1**;如果参数正好为零,则为 **0**。
|
Sin
|
三角函数,返回正弦函数。参数是弧度表示的度数角度。
|
Sqr
|
计算一个数的平方根。参数必须为大于或等于零的正数。
|
Tan
|
三角函数,计算一个值的正切。参数是弧度表示的度数角度。
|
语句 |
目的 |
Asc
|
返回一个字符的 ASCII 代码(由于 ASP 中没有字符子类型,因此为字符串的第一个字符)。
|
AscB
|
返回二进制数据序列的第一个字节。二进制数据通常用于操作文件。
|
AscW
|
返回字符串中第一个字符的 32 位宽(Unicode)字符代码。
|
Chr
|
基于 ASCII 代码参数构建单个字符串(字符)。这是构建包含不可打印字符的字符串的方法。ASP 包含许多内置常量,也用于此目的(例如 **vbCr**、**vbLf** 甚至 **vbCrLf**)。sStr = "Hello World!" & Chr(13) & Chr(10)
|
FormatCurrency
|
根据区域设置将数字值格式化为货币。可选的第二个参数表示小数点后的位数。在美国,默认值为两位。 sGasPrice = FormatCurrency(3.00)
sNatlDebt = FormatCurrency(9065368997351, 0)
|
FormatNumber
|
根据服务器的区域设置格式化数字值。它可能会插入数字分隔符(例如 3,932 中的逗号)或用零填充数字。可选的第二个参数表示小数点后显示的位数。 sPopulation = FormatNumber(9065368997351)
sPI = FormatNumber(3.1415926, 4)
|
FormatPercent
|
将数字格式化为百分比值。实际上,它将 **0** 到 **1** 之间的概率数字转换为 **0%** 到 **100%** 之间的百分比。可选的第二个参数表示小数点后显示的位数。 nPct = FormatPercent(0.5442)
nPct2 = FormatPercent(0.5442542, 3)
|
InStr
|
在另一个字符串中查找一个字符串的第一个出现位置。默认情况下,搜索将进行区分大小写的比较。第一个参数是开始搜索的字符索引。第二个参数是要搜索的文本(干草堆),第三个参数是你要查找的内容(针)。可选的第四个参数允许你指定比较类型(例如 **vbTextCompare** 或 **vbBinaryCompare**)。nBeginPos = InStr(1, sText, "Begin", vbTextCompare)
|
InStrRev
|
从字符串的末尾开始,向左搜索,查找一个字符串在另一个字符串中的第一个出现位置。与 **InStr** 不同,开始搜索的可选位置是第三个参数(而不是第一个参数)。可选的第四个参数允许你指定比较类型(例如 **vbTextCompare** 或 **vbBinaryCompare**)。 nScriptPos = InStrRev(sURL, "/")
nProtocolPos = InStrRev(sURL, "http://", 100, vbTextCompare)
|
LCase
|
将字符串中的所有字母字符转换为小写。sUsername = LCase("WaCkYcAsEuSeR")
|
Left
|
返回从基础字符串左侧(第一个字符)开始的子字符串。sFirst = Left(sFullName, 10)
|
Len
|
给定一个字符串作为参数,返回字符串的字符长度。
|
LTrim
|
修剪字符串左侧存在的任何空格。因此,如果你给函数传递一个 " Hi! " 的参数,它将返回 "Hi! " 的值。
|
Mid
|
从字符串中获取子字符串。第一个参数是从中提取子字符串的基础字符串。第二个参数表示开始的字符索引。最后一个参数表示要提取的字符数。你可以省略最后一个参数,以检索直到字符串末尾的所有字符。 sMiddle = Mid(sFullname, nMidStart, nMidEnd - nMidStart + 1)
sLast = Mid(sFullName, nLastStart)
|
Replace
|
在基础字符串(参数 1)中将搜索字符串(参数 2)的所有出现位置替换为替换字符串(参数 3),并将其返回。sEscape = Replace(sSQL, "'", "''")
|
Right
|
返回从基础字符串右侧(最后一个字符)开始的子字符串。sLast = Right(sFullName, 13)
|
RTrim
|
修剪字符串右侧存在的任何空格。因此,如果你给函数传递一个 " Hi! " 的参数,它将返回 " Hi!" 的值。
|
Space
|
构建一个包含重复空格数的字符串。当以 HTML 格式显示时,浏览器会压缩所有空格,除非文本是预格式化的(在 **<PRE>...</PRE>** 块中)或内容以纯文本格式提供。Response.Write Space(30 - Len(sFirst)) & sFirst
|
StrComp
|
比较两个字符串,查看它们是否相等。你可以执行二进制(区分大小写)比较(默认值),或者通过将可选的第三个参数传递为 **vbTextCompare** 来执行文本(不区分大小写)比较。if (StrComp(sFirst1, sFirst2, vbTextCompare)) Then Response.Write "EQUAL!"
|
String
|
通过将指定的字符重复一定次数来创建字符串。第一个参数是重复次数,第二个参数是要重复的字符串(字符)。 sLine = String(80, "-")
sDblLine = String(80, "=")
|
StrReverse
|
取一个字符串,并反转字符的顺序。换句话说,给定一个像 "012345789" 这样的字符串,这个函数将返回 "9876543210"。sReverse = StrReverse("0123456789")
|
Trim
|
修剪字符串右侧或左侧存在的任何空格。因此,如果你给函数传递一个 " Hi! " 的参数,它将返回 "Hi!" 的值。
|
UCase
|
将字符串中的所有字母字符转换为大写。sUsername = UCase("WaCkYcAsEuSeR")
|
语句 |
目的 |
And
|
逻辑 "AND" 操作。只有当两个表达式都计算为 true 时,结果才为 true,否则结果为 false。If nScore > 80 And nScore < 90 Then sGrade = "B"
|
Eqv
|
测试一对布尔表达式,当两个表达式都计算出相同的结果(两者都为 true 或两者都为 false)时,仅返回 true。If nScore > 60 Eqv False Then
|
If Then
|
这将计算一个表达式(导致一个布尔 true 或 false),并根据结果条件执行 ASP 代码。 ' example of a single-line If...Then
If nScore < 60 Then sGrade = "F"
' example of a multi-line If.. Then
If nScore < 60 Then
Response.Write "Sorry, You Failed"
Else
Response.Write "Congratulations, You Passed"
End If
|
Imp
|
"蕴含" 运算符用于确定 A 是否蕴含 B。结果始终为 true,除非 A 为 true 且 B 为 false。If bCondA Imp bCondB Then Response.Write "It Implies"
|
Is
|
将 **is** 运算符用于包含对象的变量,以测试一个对象是否与另一个对象相同(引用同一个实例)。你也可以使用 **is** 来查看对象变量是否设置为 null。If oFile is nothing Then Response.Write "Nothing"
|
IsArray
|
此函数确定变量是否包含数组。如果包含,则返回 true,否则返回 false。If IsArray(aVar) Then nCount = UBound(aVar) + 1
|
IsDate
|
测试表达式是否包含有效的日期(作为字符串,可以使用 **CDate** 转换为日期,或者作为日期子类型)。If IsDate(dBirth) Then sBirthDay = FormatDateTime(dBirth)
|
IsEmpty
|
检查变量(或表达式)是否包含空值。空值是已声明但从未赋值的变量的默认值。If IsEmpty(sVar) Then Response.Write "You forgot to define the variable ""sVar"""
|
IsNull
|
检查变量或表达式是否计算为 null。这对于使用 **ADODB** 组件检索的数据库值特别有用。If IsNull(rs.Fields("lastname").value) Then bError = True
|
IsNumeric
|
检查变量或表达式是否包含数值,或者可以使用 **CLng**、**CInt**、**CFlt** 或 **CDbl** 转换为数值。If IsNumeric(sAmount) Then nAmount = CInt(sAmount)
|
IsObject
|
测试变量或表达式是否引用有效对象。可以通过调用 **Server.CreatObject** 方法来创建对象。If IsObject(oFile) Then oFile.Close
|
Not
|
对布尔表达式执行否定操作。提供布尔 true 或 false 的相反结果。
|
Or
|
布尔 "或" 操作接受两个参数,它们必须是布尔表达式。如果两个表达式中的任何一个计算为 true,则返回 true,否则返回 false。 If bLovesSchool Or bLovesBoooks Then bIsSmart = true
bIsSmart = (bLovesSchool Or bLovesBoooks)
|
Xor
|
异或运算符仅当布尔表达式参数中只有一个为 true 时才返回 true。当两个参数都为 false 或两个参数都为 true 时,返回 false。 If (bLikesYankees Xor bLikesMets) Then bIsRealPerson = true
bGiveCake = (bJoeWantsCake Xor bJuneWantsCake)
|
语句 |
目的 |
Date
|
返回根据本地系统时钟的日期。不返回任何时间信息,只返回日期。
|
DateAdd
|
向提供的日期添加特定数量的时间单位。dTomorrow = DateAdd("d", 1, Now())
|
DateDiff
|
计算两个日期参数之间的时间单位数。Response.Write "Hours = " & DateDiff("h", dTomorrow, Now())
|
DatePart
|
提取日期时间表达式的特定部分并将其返回。第一个参数可以是 "d"(天)、"m"(月)、"yyyy"(年)、"q"(季度)、"w"(星期)、"ww"(一年中的星期)、"h"(小时)、"n"(分钟)或 "s"(秒)。nDay = DatePart("d", Now())
|
DateSerial
|
从其各个组件构造一个日期值。组件是年(参数 1)、月(参数 2)和日(参数 3)。dChristmas = DateSerial(2008, 12, 25)
|
DateValue
|
尝试将包含日期值的字符串转换为子类型为日期的变量。如果日期格式不正确,脚本将失败并出现错误。dChristmas = DateValue("12/25/2008")
|
Day
|
提取日期表达式的日部分。DatePart("d", dDate) 的快捷方式。Response.Write "Christmas is on day " & Day(dChristmas)
|
FormatDateTime
|
将日期时间表达式格式化为人类可读的格式。格式说明符(参数 2)可以是以下之一:vbGeneralDate、vbLongDate、vbShortDate、vbLongTime 或 vbShortTime。sModified = FormatDateTime(dModified, vbGeneralDate)
|
Hour
|
提取日期表达式的小时部分。DatePart("h", dDate) 的快捷方式。
|
Minute
|
提取日期表达式的分钟部分。DatePart("n", dDate) 的快捷方式。
|
Month
|
提取日期表达式的月部分。DatePart("m", dDate) 的快捷方式。
|
MonthName
|
返回与月份编号(1 到 12)相对应的月份名称。第二个参数是一个可选的布尔值,表示月份名称是否应该缩写(true)或不缩写(false)。 sMonth = MonthName(Month(dDate))
sMonth2 = MonthName(DateValue("12/25/2008"), true)
|
Now
|
返回与当前服务器时间相对应的日期时间值。Response.Write "Today is: " & Now()
|
Second
|
提取日期表达式的秒部分。DatePart("s", dDate) 的快捷方式。
|
Time
|
使用当前服务器时间返回时间值。日期不包含在此值中(为此,你应该使用 **Now**)。Response.Write "Time Right Now: " & Time()
|
Timer
|
返回一个浮点值,其中整数部分表示完整秒数(自 1970 年 1 月 1 日起),小数部分表示毫秒数。 fStart = Timer()
' do some work here
fEnd = Timer()
fElapsed = fEnd - fStart
|
TimeSerial
|
使用提供的参数构造一个子类型为时间的变量。参数是:小时、分钟 和秒。dTime = TimeSerial(23, 59, 0)
|
TimeValue
|
尝试将字符串(表示有效的时值)转换为子类型为时间的变量。如果字符串格式不正确(且无法转换),则会引发异常。dTime = TimeValue("23:59:00")
|
星期几
|
提取日期时间表达式的星期几(作为整数)。一周的第一天是星期日,返回1。一周的最后一天是星期六,返回7。nWeekday = Weekday(DateValue("12/25/2008"))
|
WeekdayName
|
提取日期时间表达式的星期几(作为字符串)。sWeekday = WeekdayName(DateValue("12/25/2008"))
|
年
|
提取日期或日期时间表达式的年部分。这是DatePart("yyyy", dDate)的快捷方式。
|
ASP 中的每个变量都是一个变体(这意味着语言不是强类型),因此当我们谈论类型转换时,我们指的是变体值的子类型。
语句 |
目的 |
CBool
|
将变量转换为布尔类型(只能保存true或false)。
|
CByte
|
将变量转换为字节类型(整数,从 0 到 255)。
|
CCur
|
将变量转换为货币类型。这就像一个小数,因为会格外注意以确保舍入时不会丢失任何东西)。fMoney = CCur(Request.Form("LoanAmount"))
|
CDate
|
将变量转换为日期时间值。表达式可以是日期、时间或日期时间表达式。dBirthday = CDate(Request.Form("BirthDay"))
|
CDbl
|
将变量转换为双精度浮点数类型。这是一个双精度浮点数。dVal = CDbl("23.3452e+04")
|
CInt
|
将变量转换为整数类型。整数是一个 2 字节带符号值,限制在 -32,768 到 32,767 之间。请注意,CInt() 执行“银行家舍入” - 它不会截断小数部分。使用 Int() 将变量截断为整数。nIntVal = CInt(Request.Form("SATScore"))
|
CLng
|
将变量转换为长整数类型。长整数是一个 4 字节带符号值,限制在 -2,147,483,648 到 2,147,483,647 之间。请注意,CLng() 执行“银行家舍入” - 它不会截断小数部分。nLngVal = CLng(Request.Form("SerialNo"))
|
CSng
|
将变量转换为浮点数(基本上是浮点数),也称为单精度浮点数。正数限制在 1.401298E-45 到 3.402823E+38 之间,负数限制在 -3.402823E+38 到 -1.401298E-45 之间。fTemp = CSng(Request.Form("Temperature")
|
CStr
|
将变量转换为字符串值。当比较两个值(其中一个是不同的类型)时,这通常是必要的。if (CStr(nAge) = Request.Form("Age")) Then Response.Write "You're " & nAge
|
Hex
|
将整数转换为十六进制等效值。十六进制是“以 16 为基数”的数字,数字范围从0到9和A到F。十六进制数字限制为四字节值,因此将-1的值转换为FFFF。
|
Oct
|
将整数转换为八进制等效值。八进制数是“以 8 为基数”的数字,这意味着数字范围从0到7。
|
语句 |
目的 |
类
|
通过将类包含在Class ... End Class之间来声明类的新的实例。类中可能包含成员变量定义、方法定义和属性定义。 Class Month
Private String sName
Private String nDays
' constructor
Sub Class_Initialize()
sName = "Unknown"
End Sub
' Abbreviation method
Public Function Abbreviation
Abbreviation = Left(sName, 3)
End Function
' retrieve the number of days
Property Get Days
Days = nDays
End Property
' assign the name for this month
Property Let Name
sName = Name
End Property
End Class
|
新
|
使用此语句声明类的新的实例。内置类RegExp可用于声明正则表达式对象的实例。在实例化新对象时,必须使用Set语句。 Set oRE = New RegExp
oRE.Pattern = "\w+"
|
私有
|
这是一个访问修饰符,可能出现在成员变量、方法或属性之前。任何标记为私有的实体只能在类定义本身内访问。
|
公共
|
此访问修饰符使实体变为公共。因此,可以使用“点表示法”从类的实例访问公共变量。方法和属性也是如此。请注意,Public是默认的访问修饰符,您不必在所有实体上都包含访问修饰符。Public Function Abbreviation
|
属性获取
|
属性获取语句允许您为您的类声明只读属性。这类似于函数,因为它返回值。如果您尝试使用此属性进行赋值(oMonth.Days = 31),解析器将抛出异常。
|
属性设值
|
使用此属性定义来定义赋值器方法。这使您可以将值分配给类属性。赋值器方法的实现方式由您决定,但它通常会修改一个成员变量。
|
属性设置
|
如果您需要定义分配对象值的属性,则应定义属性设置方法。要定义检索对象值的属性,您只需使用属性获取即可。 Property Set RegularExp
Set oRE = New RegExp
Set oMonth.RegularExp = oRE
|
设置
|
将对象的实例分配给变量。
|
TypeName
|
使用此函数以字符串形式检索对象的类型。当与常规变量一起使用时,它返回子类型(“日期”、“双精度”、“整数”、“字符串”、“布尔”等)。 ' another built-in object - Dictionary COM+ object
Set oHash = Server.CreateObject("Scripting.Dictionary")
' this will return the string "Dictionary"
Response.Write "Hash Type = " & TypeName(oHash)
|
使用
|
使用语句将为您节省一些输入,并允许您通过使用类似.Write的表示法重复访问对象的单个实例来重复访问Response对象。因此,您可以使用Response.Write,而无需重复输入,您可以执行以下操作 With Response
.Write x
.Write " x "
.Write y
.Write " = "
.Write z
End With
|
语句 |
目的 |
'
|
行注释,它注释掉直到行末(或脚本块的末尾,以先到者为准)的所有文本。' This procedure does something
|
Rem
|
在 Visual Basic 中创建注释的旧方法。我认为这只是为了向后兼容而保留的语言的一部分。它与单引号 (') 具有相同的作用,这意味着它执行行注释(注释掉直到行末的所有文本)。Rem This procedure does something
|
语句 |
目的 |
On Error
|
On Error语句用于捕获错误,从而防止引发异常。On Error必须以On Error Goto 0终止,以停止错误捕获。' trap all division error (overflow or divide-by-zero)
On Error Resume Next
f = x / y
If Err.Number <> 0 Then
sError = Err.Number & " - " & Err.Description
End If
On Error Goto 0
|
语句 |
目的 |
空
|
变量在被分配值之前的默认值。您永远不会将此值显式分配给变量,但您可以使用IsEmpty测试其是否存在。
|
假
|
具有否定含义的布尔值。类似于“否”。
|
无
|
对象变量可以设置为的特殊值。用于清除对象变量。
|
空
|
空值用于指示变量不包含有效数据。主要用于访问数据库字段的值时。If IsNull(rs.Fields("firstname").Value) Then ...
|
真
|
具有肯定(或肯定)含义的布尔值。类似于“是”。
|