Array()
FUNCTION: 返回一个数组
SYNTAX: Array(list)
ARGUMENTS: 字符,数字均可
EXAMPLE: <%
Dim myArray()
For i = 1 to 7
Redim Preserve myArray(i)
myArray(i) = WeekdayName(i)
Next
%>
RESULT: 建立了一个包含7个元素的数组myArray
myArray("Sunday","Monday", ... ... "Saturday")
CInt()
FUNCTION: 将一个表达式转化为数字类型
SYNTAX: CInt(expression)
ARGUMENTS: 任何有效的字符均可
EXAMPLE: <%
f = "234"
response.write cINT(f) + 2
%>
RESULT: 236
转化字符"234"为数字"234",如果字符串为空,则返回0值
CreateObject()
FUNCTION: 建立和返回一个已注册的ACTIVEX组件的实例。
SYNTAX: CreateObject(objName)
ARGUMENTS: objName 是任何一个有效、已注册的ACTIVEX组件的名字.
EXAMPLE: <%
Set con = Server.CreateObject("ADODB.Connection")
%>
RESULT:
CStr()
FUNCTION: 转化一个表达式为字符串.
SYNTAX: CStr(expression)
ARGUMENTS: expression 是任何有效的表达式。
EXAMPLE: <%
s = 3 + 2
response.write "The result is: " & cStr(s)
%>
RESULT: 转化数字“5”为字符“5”。
Date()
FUNCTION: 返回当前系统日期.
SYNTAX: Date()
ARGUMENTS: None.
EXAMPLE: <%=Date%>
RESULT: 8/4/99
DateAdd()
FUNCTION: 返回一个被改变了的日期。
SYNTAX: DateAdd(timeinterval,number,date)
ARGUMENTS: timeinterval is the time interval to add; number is amount of
time intervals to add; and date is the starting date.
EXAMPLE: <%
currentDate = #8/4/99#
newDate = DateAdd("m",3,currentDate)
response.write newDate
%>
<%
currentDate = #12:34:45 PM#
newDate = DateAdd("h",3,currentDate)
response.write newDate
%>
RESULT: 11/4/99
3:34:45 PM
"m" = "month";
"d" = "day";
If currentDate is in time format then,
"h" = "hour";
"s" = "second";
DateDiff()
FUNCTION: 返回两个日期之间的差值 。
SYNTAX: DateDiff(timeinterval,date1,date2 [, firstdayofweek ][,
firstweekofyear]])
ARGUMENTS: timeinterval 表示相隔时间的类型,如“M“表示“月”。
EXAMPLE: <%
fromDate = #8/4/99#
toDate = #1/1/2000#
response.write "There are " & _
DateDiff("d",fromDate,toDate) & _
" days to millenium from 8/4/99."
%>
RESULT: 从8/4/99 到2000年还有 150 天.
Day()
FUNCTION: 返回一个月的第几日 .
SYNTAX: Day(date)
ARGUMENTS: date 是任何有效的日期。
EXAMPLE: <%=Day(#8/4/99#)%>
RESULT: 4
FormatCurrency()
FUNCTION: 返回表达式,此表达式已被格式化为货币值
SYNTAX: FormatCurrency(Expression [, Digit ][, LeadingDigit ][, Paren ][,
GroupDigit]]]])
ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是
计算机的区域设置; LeadingDigit 三态常数,指示是否显示小数值小数点前面的
零。
EXAMPLE: <%=FormatCurrency(34.3456)%>
RESULT: $34.35
FormatDateTime()
FUNCTION: 返回表达式,此表达式已被格式化为日期或时间
SYNTAX: FormatDateTime(Date, [, NamedFormat])
ARGUMENTS: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用
vbGeneralDate.
EXAMPLE: <%=FormatDateTime("08/4/99", vbLongDate)%>
RESULT: Wednesday, August 04, 1999
FormatNumber()
FUNCTION: 返回表达式,此表达式已被格式化为数值.
SYNTAX: FormatNumber(Expression [, Digit ][, LeadingDigit ][, Paren ][,
GroupDigit]]]])
ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是
计算机的区域设置。; LeadingDigit i指示小数点右侧显示位数的数值。默认值为 -
1,指示使用的是计算机的区域设置。; Paren 指示小数点右侧显示位数的数值。默认
值为 -1,指示使用的是计算机的区域设置。; GroupDigit i指示小数点右侧显示位数
的数值。默认值为 -1,指示使用的是计算机的区域设置。.
EXAMPLE: <%=FormatNumber(45.324567, 3)%>
RESULT: 45.325
FormatPercent()
FUNCTION: 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以
100 )。 (%)
SYNTAX: FormatPercent(Expression [, Digit ][, LeadingDigit ][, Paren ][,
GroupDigit]]]])
ARGUMENTS: 同上.
EXAMPLE: <%=FormatPercent(0.45267, 3)%>
RESULT: 45.267%
Hour()
FUNCTION: 以24时返回小时数.
SYNTAX: Hour(time)
ARGUMENTS:
EXAMPLE: <%=Hour(#4:45:34 PM#)%>
RESULT: 16
(Hour has been converted to 24-hour system)
Instr()
FUNCTION: 返回字符或字符串在另一个字符串中第一次出现的位置.
SYNTAX: Instr([start, ] strToBeSearched, strSearchFor [, compare])
ARGUMENTS: Start为搜索的起始值,strToBeSearched接受搜索的字符串
strSearchFor要搜索的字符.compare比较方式(详细见ASP常数)
EXAMPLE: <%
strText = "This is a test!!"
pos = Instr(strText, "a")
response.write pos
%>
RESULT: 9
InstrRev()
FUNCTION: 同上,只是从字符串的最后一个搜索起
SYNTAX: InstrRev([start, ] strToBeSearched, strSearchFor [, compare])
ARGUMENTS: 同上.
EXAMPLE: <%
strText = "This is a test!!"
pos = InstrRev(strText, "s")
response.write pos
%>
RESULT: 13
Int()
FUNCTION: 返回数值类型,不四舍五入,注意取值是不大于它的整数。
SYNTAX: Int(number)
ARGUMENTS:
EXAMPLE: <%=INT(32.89)%> <%=int(-3.33)%>
RESULT: 32 -4
IsArray()
FUNCTION: 判断一对象是否为数组,返回布尔值 .
SYNTAX: IsArray(name)
ARGUMENTS:
EXAMPLE: <%
strTest = "Test!"
response.write IsArray(strTest)
%>
RESULT: False
IsDate()
FUNCTION: 判断一对象是否为日期,返回布尔值
SYNTAX: IsDate(expression)
ARGUMENTS: expression is any valid expression.
EXAMPLE: <%
strTest = "8/4/99"
response.write IsDate(strTest)
%>
RESULT: True
IsEmpty()
FUNCTION: 判断一对象是否初始化,返回布尔值.
SYNTAX: IsEmpty(expression)
ARGUMENTS:
EXAMPLE: <%
Dim i
response.write IsEmpty(i)
%>
RESULT: True
IsNull()
FUNCTION: 判断一对象是否为空,返回布尔值.
SYNTAX: IsNull(expression)
ARGUMENTS:
EXAMPLE: <%
Dim i
response.write IsNull(i)
%>
RESULT: False
IsNumeric()
FUNCTION: 判断一对象是否为数字,返回布尔值.
SYNTAX: IsNumeric(expression)
ARGUMENTS:
EXAMPLE: <%
i = "345"
response.write IsNumeric(i)
%>
RESULT: True
就算数字加了引号,ASP还是认为它是数字。
IsObject()
FUNCTION: 判断一对象是否为对象,返回布尔值.
SYNTAX: IsObject(expression)
ARGUMENTS:
EXAMPLE: <%
Set con = Server.CreateObject("ADODB.Connection")
response.write IsObject(con)
%>
RESULT: True
LBound()
FUNCTION: 返回指定数组维的最小可用下标.
SYNTAX: Lbound(arrayname [, dimension])
ARGUMENTS: ; dimension 指明要返回哪一维下界的整数。使用 1 表示第一维,2
表示第二维,以此类推。如果省略 dimension 参数,默认值为 1.
EXAMPLE: <%
i = Array("Monday","Tuesday","Wednesday")
response.write LBound(i)
%>
RESULT: 0
LCase()
FUNCTION: 返回字符串的小写形式
SYNTAX: Lcase(string)
ARGUMENTS: string is any valid string expression.
EXAMPLE: <%
strTest = "This is a test!"
response.write LCase(strTest)
%>
RESULT: this is a test!
Left()
FUNCTION: 返回字符串左边第length个字符以前的字符(含第length个字符).
SYNTAX: Left(string, length)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!"
response.write Left(strTest, 3)
%>
RESULT: Thi
Len()
FUNCTION: 返回字符串的长度.
SYNTAX: Len(string | varName)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!"
response.write Len(strTest)
%>
RESULT: 15
LTrim()
FUNCTION: 去掉字符串左边的空格.
SYNTAX: LTrim(string)
ARGUMENTS:
EXAMPLE: <%
strTest = " This is a test!"
response.write LTrim(strTest)
%>
RESULT: This is a test!
Mid()
FUNCTION: 返回特定长度的字符串(从start开始,长度为length).
SYNTAX: Mid(string, start [, length])
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test! Today is Monday."
response.write Mid(strTest, 17, 5)
%>
RESULT: Today
Minute()
FUNCTION: 返回时间的分钏.
SYNTAX: Minute(time)
ARGUMENTS:
EXAMPLE: <%=Minute(#12:45:32 PM#)%>
RESULT: 45
Month()
FUNCTION: 返回日期.
SYNTAX: Month(date)
ARGUMENTS: date is any valid date expression.
EXAMPLE: <%=Month(#08/04/99#)%>
RESULT: 8
MonthName()
FUNCTION: Returns a string identifying the specified month.
SYNTAX: MonthName(month, [, Abb])
ARGUMENTS: month is the numeric representation for a given month; Abb
(optional) is a boolean value used to display month abbreviation. True
will display the abbreviated month name and False (default) will not show
the abbreviation.
EXAMPLE: <%=MonthName(Month(#08/04/99#))%>
RESULT: August
Now()
FUNCTION: Returns the current system date and time.
SYNTAX: Now()
ARGUMENTS: None
EXAMPLE: <%=Now%>
RESULT: 8/4/99 9:30:16 AM
Replace()
FUNCTION: Returns a string in which a specified sub-string has been
replaced with another substring a specified number of times.
SYNTAX: Replace(strToBeSearched, strSearchFor, strReplaceWith [, start
][, count ][, compare]]])
ARGUMENTS: strToBeSearched is a string expression containing a sub-
string to be replaced; strSearchFor is the string expression to search for
within strToBeSearched; strReplaceWith is the string expression to replace
sub-string strSearchFor; start (optional) is the numeric character
position to begin search; count (optional) is a value indicating the
comparision constant.
EXAMPLE: <%
strTest = "This is an apple!"
response.write Replace(strTest, "apple", "orange")
%>
RESULT: This is an orange!
Right()
FUNCTION: 返回字符串右边第length个字符以前的字符(含第length个字符).
SYNTAX: Right(string, length)
ARGUMENTS: .
EXAMPLE: <%
strTest = "This is an test!"
response.write Right(strTest, 3)
%>
RESULT: st!
Rnd()
FUNCTION: 产生一个随机数.
SYNTAX: Rnd [ (number) ]
ARGUMENTS:
EXAMPLE: <%
Randomize()
response.write RND()
%>
RESULT: 任何一个在0 到 1 之间的数
Round()
FUNCTION: 返回按指定位数进行四舍五入的数值.
SYNTAX: Round(expression [, numRight])
ARGUMENTS: numRight数字表明小数点右边有多少位进行四舍五入。如果省略,则
Round 函数返回整数.
EXAMPLE: <%
i = 32.45678
response.write Round(i)
%>
RESULT: 32
Rtrim()
FUNCTION: 去掉字符串右边的字符串.
SYNTAX: Rtrim(string)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!! "
response.write RTrim(strTest)
%>
RESULT: This is a test!!
Second()
FUNCTION: 返回秒.
SYNTAX: Second(time)
ARGUMENTS: .
EXAMPLE: <%=Second(#12:34:28 PM#)%>
RESULT: 28
StrReverse()
FUNCTION: 反排一字符串
SYNTAX: StrReverse(string)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!!"
response.write StrReverse(strTest)
%>
RESULT: !!tset a si sihT
Time()
FUNCTION: 返回系统时间.
SYNTAX: Time()
ARGUMENTS: .
EXAMPLE: <%=Time%>
RESULT: 9:58:28 AM
Trim()
FUNCTION: 去掉字符串左右的空格.
SYNTAX: Trim(string)
ARGUMENTS: string is any valid string expression.
EXAMPLE: <%
strTest = " This is a test!! "
response.write Trim(strTest)
%>
RESULT: This is a test!!
UBound()
FUNCTION: 返回指定数组维数的最大可用下标.
SYNTAX: Ubound(arrayname [, dimension])
ARGUMENTS: ; dimension (optional) 指定返回哪一维上界的整数。1 表示第一
维,2 表示第二维,以此类推。如果省略 dimension 参数,则默认值为 1.
EXAMPLE: <%
i = Array("Monday","Tuesday","Wednesday")
response.write UBound(i)
%>
RESULT: 2
UCase()
FUNCTION: 返回字符串的大写形式.
SYNTAX: UCase(string)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!!"
response.write UCase(strTest)
%>
RESULT: THIS IS A TEST!!
VarType()
FUNCTION: 返回指示变量子类型的值
SYNTAX: VarType(varName)
ARGUMENTS:
EXAMPLE: <%
i = 3
response.write varType(i)
%>
RESULT: 2(数字)详见"asp常数"
WeekDay()
FUNCTION: 返回在一周的第几天.
SYNTAX: WeekDay(date [, firstdayofweek])
ARGUMENTS: .
EXAMPLE: <%
d = #8/4/99#
response.write Weekday(d)
%>
RESULT: 4(星期三)
WeekDayName()
FUNCTION: 返回一周第几天的名字.
SYNTAX: WeekDayName(weekday [, Abb ][, firstdayofweek]])
ARGUMENTS: Abb可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省
略, 默认值为 False,即不缩写星期各天的名称.firstdayofweek指明星期第一天的
数值
EXAMPLE: <%
d = #8/4/99#
response.write WeekdayName(Weekday(d))
%>
RESULT: Wednesday
Year()
FUNCTION: 返回当前的年份.
SYNTAX: Year(date)
ARGUMENTS:
EXAMPLE: <%=Year(#8/4/99#)%>
RESULT: 1999
ASP函数大全
Abs(number)
返回绝对值。
Array(arglist)
创建一个数组。
Asc(string)
返回字符串第一个字符的ANSI码。
Atn(number)
返回反正弦值。
CBool (expression)
转换成Boolean数据类型变量。
CByte (expression)
转换成Byte数据类型变量。
CCur (expression)
转换成Currency数据类型变量。
CDate (expression)
转换成Date数据类型变量。
CDbl (expression)
转换成Double数据类型变量。
Chr(charcode)
把ANSI 码转换成相应的键盘字符。
CInt (expression)
转换成Integer数据类型变量。
CLng (expression)
转换成Long数据类型变量。
CreateObject(servername.typename)
创建一个自动对象。
CSng (expression)
转换成Single数据类型变量。
CStr (expression)
转换成String数据类型变量。
Date
根据所用的系统返回时间。
DateAdd(interval,number,date)
向date对象添加指定的时间间隔。其中参数interval 接受下表所示的值。
设定值
描述
yyyy
年
q
季度
m
月份
y
一年的第几天
d
天
w
星期几
ww
一年的第几个星期
h
小时
m
分钟
s
秒钟
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])
返回两个日期之间的间隔,关于firstdayofweek及firstweekofyear的值请参考下面的“日期和时间常数”一节。interval参数接受下表所示的值。
设定值
描述
yyyy
年
q
季度
m
月份
y
一年的第几天
d
天
w
星期几
ww
一年的第几个星期
h
小时
m
分钟
s
秒钟
DatePart(interval , date[,firstdayofweek[,firstweekofyear]])
返回Date对象指定部分。关于firstdayofweek及firstweekofyear的值请参考下面的“日期和时间常数”一节。interval参数接受下表所示的值。
设定值
描述
yyyy
年
q
季度
m
月份
y
一年的第几天
d
天
w
星期几
ww
一年的第几个星期
h
小时
m
分钟
s
秒钟
DateSerial(year,month,day)
转换成Date数据子类型变体值。
Datevalue(date)
转换成Date数据子类型变体值。
Day(date)
根据参数date返回该天在一个月中的号数。
Exp(number)
返回e的number次方的值。
Filter(InputStrings,value[,Include[,Compare]])
根据筛选条件创建一个新的数组。关于Compare的值,请参看后面“比较常数”一节。
Fix(number)
转换成一个整数(对于负数,只入不舍)。
FormatCurrency(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit[,UseParensForNegativeNumbers [,GroupDigit]]]])
格式化成currency形式。关于IncludeleadingDigit,UseParensForNegativeNumbers及GroupDigit的值请参看后面“三态常数”一节。
FormatDateTime(Date[,NamedFormat])
对日期及时间进行格式化输出。关于NamedFormat的值请参看后面“日期格式常数”一节。
FormatNumber(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit[,UseParensForNegativeNumbers [,GroupDigit]]]])
对数字进行格式化。关于IncludeleadingDigit,UseParensForNegativeNumbers及GroupDigit的值请参看后面“三态常数”一节。
FormatPercent(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit[,UseParensForNegativeNumbers [,GroupDigit]]]])
对百分数进行格式化。关于IncludeleadingDigit,UseParensForNegativeNumbers及GroupDigit的值请参看后面“三态常数”一节。
GetObject([pathname][,class])
从指定的文件中返回指定的动态对象。
Hex(number)
返回数number的十六进制的值。
Hour(time)
根据参数time的值返回小时。
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
显示一个临时的输入框,并且返回用户的输入。
InStr([start,]string1,string2[,compare])
返回字符串string2在字符串string1中第一次出现的位置。关于compare的值请参看后面的“比较常数”一节。
InStrRev(string1,string2 [start [,compare]])
返回字符串string2在字符串string1中最后出现的位置。关于compare的值请参看后面的“比较常数”一节。
Int(number)
返回一个整数(负数只舍不入)。
IsArray(varname)
确定变量是否是一个数组。
IsDate(expression)
确定表达式expression能否转换成日期格式。
IsEmpty(varname)
确定变量是否已经初始化了。
IsNull(expression)
确定表达式expression是否为空。
IsNumberic(expression)
确定表达式expression的结果是否是一个数。
IsObject(expression)
确定表达式expression是否是一个自动对象。
Join(list,[,delimiter])
把一个数组中的所有子字符串连接起来,连接所用的分隔符由delimiterd的值设定。
LBound(arrayname[,dimension])
返回数组某维的最低界限。在当前的VBScript版本中,该函数总是返回值0。
Lcase(string)
以小写字符格式化。
Left(string,length)
返回指定长度的字符串string左部分。
Len(string|varname)
返回字符串string的长度或变量varname的字节长度。
LoadPicture(pitcurename)
载入一个图片对象。
Log(number)
返回数number的自然对数值。
Ltrim(string)
删除字符串string左边多余的空格。
Mid(strin,start[,length])
返回指定长度的字符串string的子串。
Minute(time)
根据参数time的值返回分钟的值。
Month(date)
返回以数字表示的月份。
MonthName(month[,abbreviate])
返回以名称表示的月份。
MsgBox(prompt[,buttons][,title][helpfile,context])
显示一个消息框,要求用户选择一个按钮,返回能指明用户所做选择的值。关于button的值和返回值请参看后面“消息框常数”一节。
Now
根据系统,返回当前的日期和时间。
Oct(number)
返回数number的八进制值。
Replace(expression,find,replacewith[,start[,count[,compare]]])
用指定的子字符串replacewith替换指定的子字符串find指定的次数。关于参数compare的值请参看后面“比较常数”一节。
Right(string,length)
返回指定长度的字符串string的右部分子串。
Rnd([number])
产生一个随机数。
Round(number[,numdecimalplaces])
根据指定的十进制位数对数number进行四舍五入。
RTrim(string)
删除字符串string右边多余的空格。
ScriptEngine
返回使用的脚本语言的名称。
ScriptEngineBuildVersion
返回使用的脚本引擎版本。
ScriptEngineMaorVersion
返回使用的脚本引擎的大版本号。
Second(time)
根据参数time的值返回该分的第几秒。
Sgn(number)
返回数number的正负号。
Sin(number)
返回数number的正弦值。
Space(number)
用指定数量的空格创建字符串。
Split(expression[,delimiter[,count[,compare]]])
把一个字符串分割并转换成数组。关于compare的值请参看后面“比较常数”一节。
Sqr(number)
返回数number的平方根值。
StrComp(string1,string2[,compare])
字符串比较。关于compare的值请参看后面“比较常数”一节。
StrReverse(string1)
对字符串string1进行倒序。
String(number,character)
用number个字符character创建字符串。
Tan(number)
返回数number的正切。
Time
根据系统返回当前时间。
TimeSerial(hour,minute,second)
返回Date变量体。
Timevalue(time)
返回包含时间的Date变量体。
Trim(string)
删除字符串string两边的多余空格。
TypeName(varname)
返回子类型的名称。关于返回值请参看后面“变量类型常数”一节。
UBound(arrayname[,dimension])
返回数组某维的上边界。缺省维数时,为第一维。
Ucase(string)
用大写字母格式格式化字符串string。
VarType(varname)
返回子类型的值。关于返回值请参看后面“变量类型常数”一节。
Weekday(date,[firstdayofweek])
用数字形式返回星期几。关于参数firstdayofweek的值请参看后面“变量类型常数”一节。
WeekDayName(weekday,abbreviate,firstdayofweek)
用名称形式返回星期几。关于参数firstdayofweek的值请参看后面“变量类型常数”一节。
Year(date)
根据参数date返回年份。
asp 中处理文件上传以及删除时常用的自定义函数:
<%
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
’所有自定义的VBS函数
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
function DeleteFile(Filename) ’删除文件
if Filename<>"" then
Set fso = server.CreateObject("Scripting.FileSystemObject")
if fso.FileExists(Filename) then
fso.DeleteFile Filename
end if
set fso = nothing
end if
end function
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
function CreateDIR(byval LocalPath) ’建立目录的程序,如果有多级目录,则一级一级的创建
on error resume next
LocalPath = replace(LocalPath,"\","/")
set FileObject = server.createobject("Scripting.FileSystemObject")
patharr = split(LocalPath,"/")
path_level = ubound(patharr)
for i = 0 to path_level
if i=0 then pathtmp=patharr(0) & "/" else pathtmp = pathtmp & patharr(i) & "/"
cpath = left(pathtmp,len(pathtmp)-1)
if not FileObject.FolderExists(cpath) then FileObject.CreateFolder cpath
next
set FileObject = nothing
if err.number<>0 then
CreateDIR = false
err.Clear
else
CreateDIR = true
end if
end function
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
function SaveRandFileName(byval szFilename) ’根据原文件名生成新的随机文件名
randomize
’ranNum=int(90000*rnd)+10000
’if month(now)<10 then c_month="0" & month(now) else c_month=month(now)
’if day(now)<10 then c_day="0" & day(now) else c_day=day(now)
’if hour(now)<10 then c_hour="0" & hour(now) else c_hour=hour(now)
’if minute(now)<10 then c_minute="0" & minute(now) else c_minute=minute(now)
’if second(now)<10 then c_second="0" & second(now) else c_second=minute(now)
fileExt_a=split(szFilename,".")
fileExt=lcase(fileExt_a(ubound(fileExt_a)))
SaveRandFileName=replace(replace(replace(now,":",""),"-","")," ","")&int(10*rnd)&"."&fileExt
’GenerateRandomFileName = year(now)&c_month&c_day&c_hour&c_minute&c_second&"_"&ranNum&"."&fileExt
end function
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
function jaron_replacer(strContent,start_string,end_string,replace_string)
’CMS替换函数:源字符串,前部分,后部分,替换成的字符
’返回被替换后的字符串
jaron_replacer = replace(strContent,mid(strContent,instr(strContent,start_string),instr(strContent,end_string)+len(end_string)-1),replace_string)
end function
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
function replaceplus(strContent,start_string,end_string,replace_string)
’文档中,将所有开始,结束之间的所有字符删除
on error resume next
MARKCOUNTS = ubound(split(strContent,start_string))
PRESTRING = strContent
for i=0 to MARKCOUNTS
STARTMARK=instr(1,PRESTRING,start_string,1)
if STARTMARK=0 then exit for
COMPMARK=instr(1,PRESTRING,end_string,1) + len(end_string)
VerString=mid(PRESTRING,STARTMARK,COMPMARK - STARTMARK)
PRESTRING = replace(PRESTRING,VerString,replace_string)
next
replaceplus = PRESTRING
if err.number<>0 then err.Clear
end function
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
%>
检测一个字符串在另一个字符串当中出现几次的函数
Function CheckTheChar(TheChar,TheString)
’TheChar="要检测的字符串"
’TheString="待检测的字符串"
if inStr(TheString,TheChar) then
for n =1 to Len(TheString)
if Mid(TheString,n,Len(TheChar))=TheChar then
CheckTheChar=CheckTheChar+1
End if
Next
CheckTheChar="这个字符"&CheckTheChar&"次"
else
CheckTheChar="0次"
end if
End Function
example:
Response.write CheckTheChar("大家","a224大家4a434a4大家654arewr4a4a" )
半角<=>全角互转函数[JS版 VBS版]
<script>
/*
****************************
* 半角<=>全角 *
* [NB联盟] *
* Writer YuPing *
****************************
* 参数说明:
* str:要转换的字符串
* flag:标记,为0时半转全,为非0时全转半
* 返回值类型:字符串
****************************
*/
function DBC2SBC(str,flag) {
var i;
var result=’’;
if (str.length<=0) {alert(’字符串参数出错’);return false;}
for(i=0;i<str.length;i++)
{ str1=str.charCodeAt(i);
if(str1<125&&!flag)
result+=String.fromCharCode(str.charCodeAt(i)+65248);
else
result+=String.fromCharCode(str.charCodeAt(i)-65248);
}
return result;
}
//示例:
alert(DBC2SBC("AAabc",0));
document.write(DBC2SBC("abcdefg",0))
</script>
<input type=text value="abcdefg" id=txt><input type=button value="变" onclick=txt.value=DBC2SBC(txt.value)>
<script language="vbscript">
’****************************
’* 半角<=>全角 *
’* [NB联盟] *
’* Writer YuPing *
’****************************
’* 参数说明:
’* str:要转换的字符串
’* flag:标记,为0时半转全,为非0时全转半
’* 返回值类型:字符串
’****************************
function DBC2SBC(str,flag)
dim i
if len(str)<=0 then
msgbox ’字符串参数出错’
exit function
end if
for i=1 to len(str)
str1=asc(mid(str,i,1))
if str1>0 and str1<=125 and not flag then
dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))-23680)
else
dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))+23680)
end if
next
end function
’示例:
alert(dbc2sbc("AB",1))
</script>
截取固定字数
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
function DoTrimProperly(str, nNamedFormat, properly, pointed, points)
dim strRet
strRet = Server.HTMLEncode(str)
strRet = replace(strRet, vbcrlf,"")
strRet = replace(strRet, vbtab,"")
If (LEN(strRet) > nNamedFormat) Then
strRet = LEFT(strRet, nNamedFormat)
If (properly = 1) Then
Dim TempArray
TempArray = split(strRet, " ")
Dim n
strRet = ""
for n = 0 to Ubound(TempArray) - 1
strRet = strRet & " " & TempArray(n)
next
End If
If (pointed = 1) Then
strRet = strRet & points
End If
End If
DoTrimProperly = strRet
End Function
</SCRIPT>
列如:
<% =(DoTrimProperly((rsh.Fields.Item("n_title").value), 10, 0, 1, "...")) %>
检验表单
<script language="javascript">
<!--
function isEmpty(s)
{
return ((s == null) || (s.length == 0))
}
function isWhitespace (s)
{
var whitespace = " \t\n\r";
var i;
// 以下代码判断是否有空字符
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (whitespace.indexOf(c) >= 0)
{
return true;
}
}
return false;
}
function isCharsInBag (s, bag)
{
var i;
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (bag.indexOf(c) == -1) return false;
}
return true;
}
function isEmail (s)
{
//判断Email是否为空
if (isEmpty(s))
{
window.alert("输入的E-mail地址不能为空,请输入!");
return false;
}
//判断Email中是否包含空格
if (isWhitespace(s))
{
window.alert("输入的E-mail地址中不能包含空格符,请重新输入!");
return false;
}
//判断Email地址长度
var i = 1;
var len = s.length;
if (len > 100)
{
window.alert("Email地址长度不能超过100位!");
return false;
}
pos1 = s.indexOf("@");
pos2 = s.indexOf(".");
pos3 = s.lastIndexOf("@");
pos4 = s.lastIndexOf(".");
//判断Email地址中是否包含符号 "@"
if ((pos1 <= 0)||(pos1 == len)||(pos2 <= 0)||(pos2 == len))
{
window.alert("请输入有效的E-mail地址!");
return false;
}
else
{
if( (pos1 == pos2 - 1) || (pos1 == pos2 + 1)
|| ( pos1 != pos3 ) //find two @
|| ( pos4 < pos3 ) ) //. should behind the "@"
{
window.alert("请输入有效的E-mail地址!");
return false;
}
}
if ( !isCharsInBag( s, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@"))
{
window.alert("email地址中只能包含字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@\n" + "请重新输入" );
return false;
}
//判断是否包含有效的字符
/*
var badChar = "><,[]{}?/+=|\\"\":;!#$%^&()`";
if ( isCharsInBag( s, badChar))
{
alert("请不要在email地址中输入字符 " + badChar + "\n" );
alert("请重新输入" );
return false;
}
*/
return true;
}
function checkdata() {
if (document.form1.Email.value=="") {
window.alert ("请输入您的E-mail地址 !")
return false
}
if ( !isEmail(document.form1.Email.value) )
return false
if (document.form1.Pass.value=="") {
window.alert ("请输入您的密码 !")
return false
}
if (document.form1.Pass.value.length<5) {
window.alert ("您的密码数必须大于4位 !")
return false
}
if (document.form1.Pass.value.length>10) {
window.alert ("您的密码数必须小于10位 !")
return false
}
if (document.form1.Comfpass.value=="") {
window.alert ("请输入您的确认密码 !")
return false
}
if (document.form1.Pass.value!=document.form1. Comfpass.value) {
window.alert ("您的密码不一致 !")
return false
}
if (document.form1.Pass_question.value=="") {
window.alert ("请输入您取回密码的问题 !")
return false
}
if (document.form1. Pass_answer.value=="") {
window.alert ("请输入您取回密码的答案!")
return false
}
if (document.form1.Name.value=="") {
window.alert ("请输入您的真实姓名 !")
return false
}
if (document.form1.City.value=="") {
window.alert ("请输入所在城市 !")
return false
}
if (document.form1.Address.value=="") {
window.alert ("请输入您的详细地址 !")
return false
}
if (document.form1.Zip.value=="") {
window.alert ("请输入您的邮编 !")
return false
}
if (document.form1.Phone.value=="") {
window.alert ("请输入您的电话号码 !")
return false
}
if (document.form1.fax.value=="") {
window.alert ("请输入您的传真号码 !")
return false
}
if (document.form1.mobil.value=="") {
window.alert ("请输入您的手机号码 !")
return false
}
return true
}
//-->
</script>
例如:
<form name="form1" method="POST" action="/cinfocheck.asp" onSubmit="return checkdata()">
转换空格和回车
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
function DoWhiteSpace(str)
DoWhiteSpace = Replace((Replace(str, vbCrlf, "<br>")), chr(32)&chr(32), " ")
End Function
</SCRIPT>
例子:N_Content=DoWhiteSpace(Request.Form("N_Content"))
按要求弹窗口转向
if (confirm("到 a.htm 吗?"))
{
window.location.href="a.htm";
}
else
{
window.location.href="b.htm";
}
按钮倒记时效果
<script language="javascript">
var secs = 9;
var wait = secs * 1000;
document.form1.rulesubmit.value = "同 意(" + secs + ")";
document.form1.rulesubmit.disabled = true;
for(i = 1; i <= secs; i++) {
window.setTimeout("update(" + i + ")", i * 1000);
}
window.setTimeout("timer()", wait);
function update(num, value) { , ;
if(num == (wait/1000)) {
document.form1.rulesubmit.value = "同 意";
} else {
printnr = (wait / 1000)-num;
document.form1.rulesubmit.value = "同 意(" + printnr + ")";
}
}
function timer() {
document.form1.rulesubmit.disabled = false;
document.form1.rulesubmit.value = "同 意";
}
</script>
<form name="form1" method="post" action="">
<input type="submit" name="rulesubmit" value="同 意" style="height: 23px">
</form>
全选和取消全选
<SCRIPT language="javascript">
function checkAll(bCheck)
{
var arr = document.all.chk;
for(var i=0; i<arr.length; i++)
{
if(!arr[i].disabled == true)
arr[i].checked = bCheck;
}
}
</SCRIPT>
<INPUT TYPE="checkbox" NAME="all" onclick="checkAll(this.checked)"><p>
<INPUT TYPE="checkbox" NAME="chk">
<INPUT TYPE="checkbox" NAME="chk">
<INPUT TYPE="checkbox" NAME="chk" disabled>
<INPUT TYPE="checkbox" NAME="chk">
<INPUT TYPE="checkbox" NAME="chk">
在当前位置加入指定字符
<HTML>
<HEAD>
<SCRIPT>
function insertAtCaret (textEl, text) {
textEl.focus();
document.selection.createRange().text=text;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="aForm">
<TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft">测试测试测试测试测
试测试
</TEXTAREA>
<BR>
<INPUT TYPE="text" NAME="aText" SIZE="80" value="要插入的文字">
<BR>
<INPUT TYPE="button" value="insert"
onCLICK="insertAtCaret(this.form.aTextArea,this.form.aText.value);">
</FORM>
</BODY>
</HTML>
找到2个tag之间的内容
<%
Function RegGetString(expression)
Dim reg
Set reg = New RegExp
reg.IgnoreCase = True
reg.Global = True
reg.Pattern = "(.*?)<!--A-->(.*?)<!--B-->(.*?)"
RegGetString= reg.Replace(expression,"$1<hello>$2")
Set reg =nothing
End Function
%>
<% = RegGetString("标记外1<!--A-->记录一<!--B-->标记外2<!--A-->记录二<!--B-->标记外3") %>
ASP语法速查表
作者:佚名 文章来源:不详 点击数:1302 更新时间:2004-10-16
VBScript 函数
功能说明
例子
Abs (数值) 绝对值。一个数字的绝对值是它的正值。空字符串 (null) 的绝对值,也是空字符串。未初始化的变数,其绝对为 0 例子:ABS(-2000)
结果:2000
Array (以逗点分隔的数组元素) Array 函数传回数组元素的值。 例子:
A=Array(1,2,3)
B=A(2)
结果: 2
说明:变量B为A数组的第二个元素的值。
Asc (字符串) 将字符串的第一字母转换成 ANSI (美国国家标准符号)字码。 例子:Asc(”Internet”)
结果:73
说明:显示第一字母 I 的 ANSI 字码。
CBool(表达式) 转换成布尔逻辑值变量型态(True 或False ) 例子:CBool(1+2)
结果:True
CDate (日期表达式) 换成日期变量型态。可先使用 IsDate 函数判断是否可以转换成日 期。 例子: CDate (now( )+2)
结果:2000/5/28 10:30:59
CDbl(表达式) 转换成DOUBLE变量型态。
Chr ( ANSI 字码) 将ASCII 字码转换成字符。 例子: Chr ( 72 )
结果: H
CInt (表达式) 转换成整数变量型态。 例子: CInt ("3.12")
结果: 3
CLng (表达式) 转换成LONG 变量型态。
CSng (表达式) 转换成SINGLE 变量型态。
CStr (表达式) 转换成字符串变量型态。
Date ( )top 传回系统的日期。 例子: Date
结果: 2000/5/13
DateAdd ( I , N , D ) 将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分
s Second 秒
N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。
D :待加减的日期。 例子: DateAdd ( "m" , 1 , "31-Jan-98")
结果: 28-Feb-98
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
结果: 1999/2/9
说明:将一个日期 30-Jan-99 加上 20 天后的日期。
DateDiff (I , D1 , D2[,FW[,FY]]) 计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
m Minute 分
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周 例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")
结果: 97
说明:显示两个日期之间的期间为 97 天。
DatePart (I,D,[,FW[,FY]]) 传回一个日期的之部份。
>I :设定传回那一部份。譬如 >I="d" 表示传回 部份为日。 >I 的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
m Minute 分
s Second 秒
D :待计算的日期。
>FW :设定每周第一天为星期几, 若未设定则表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一>3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周 例子: DatePart ("m","25-Mar-99 ")
结果: 3
说明:显示传回一个日期 的月部份。
Dateserial (year,month,day) 转换(year,month,day) 成日期变量型态。 例子: DateSerial (99,10,1)
结果: 1999/10/1
Datevalue ( 日期的字符串或表达式 ) 转换成日期变量型态,日期从 January 1,100 到 December 31,9999 。格式为 month,day,and year 或 month/day/year 。譬如: December 30,1999 、 Dec 30,1999 、 12/30/1999 、 12/30/99 例子: Datevalue ("January 1,2002 ")
结果: 2002/1/1
Day( 日期的字符串或表达式 ) 传回日期的「日」部份。 例子: Day(" 12/1/1999 ")
结果: 1
Fix( 表达式 )top 转换字符串成整数数字型态。与 Int 函数相同。若为 null 时传回 null 。
Int (number) 与 Fix(number) 的差别在负数。如 Int (-5.6)=-6 , Fix(-5.6)=-5 。 例子: Fix(5.6)
结果: 5
Hex( 表达式 )top 传回数值的十六进制值。若表达式为 null 时 Hex( 表达式 )=null ,若表达式 =Empty 时 Hex( 表达式 )=0 。 16 进位可以加「 &H 」表示,譬如 16 进位 &H10 表示十进制的 16 。 例子: Hex(30)
结果: 1E
Hour( 时间的字符串或表达式 ) 传回时间的「小时」部份。 例子: Hour("12:30:54 ")
结果: 12
InStr ([start,]string1,string2[,compare]) top 将一 个 字符串由左 而右与另一个比较,传回第一个相同的位置。
start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。 例子: InStr("abc123def123","12")
结果: 4
InstrRev ([start,]string1,string2[,compare]) 将一 个 字符串 由右而左与另一个比较,传回第一个相同的位置。
start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。 例子: InstrRev ("abc123def123","12")
结果: 10
Int ( 表达式 ) 传回一个数值的整数部份。与 Fix 函数相同。 例子: Int (5.6)
结果: 5
IsArray ( 变数 ) 测试变量是 (True) 否 (False) 是一个数组。 例子: IsArray (3)
结果: False
说明:不是一个数组。
IsDate ( 日期或字符串的表达式 ) 是否可以转换成日期。日, 期从 January 1,100 A.D. 到 December 31,9999 A.D 。 例子: IsDate ("December 31,1999 ")
结果: True
说明:可以转换成日期。
IsEmpty ( 变数 ) 测试变量是 (True) 否 (False) 已经被初始化 例子: IsEmpty (a)
结果: True
IsNull ( 变数 ) 测试变数是 (True) 否 (False) 不是有效的数据。 例子: IsNull ("")
结果: False
说明:是有效的数据。
IsNumeric ( 表达式 ) 是 (True) 否 (False) 是数字。 例子: IsNumeric ("abc123")
结果: False
说明:不是数字。
LCase ( 字符串表达式 ) top 转换字符串成小写。将大写字母的部份转换成小写。字符串其余的部份不变。 例子: LCase ("ABC123")
结果: abc123
Left( 字符串表达式 ,length) 取字符串左边的几个字。 length 为取个字。 Len 函数可得知字符串的长度。 例子: Left("ABC123",3)
结果: ABC
Len( 字符串表达式 变量 ) 取得字符串的长度。 例子: Len("ABC123")
结果: 6
LTrim ( 字符串表达式 ) 除去字符串左边的空白字。 RTrim 除去字符串右边的空白字, Trim 函数除去字符串左右两边的空白字。 例子: LTrim ("456+" abc ")
结果: 456abc123
Mid( 字符串表达式 ,start[,length]) top 取字符串中的几个字。 start 为从第几个 字取起, length 为取几个字, 若略 length 则从 start 取到最右底。由Len 函数可得知字符串的长度。 例子: Mid("abc123",2,3)
结果: c12
Minute( 日期的字符串或表达式 ) 传回时间的「分钟」部份。 例子: Minute("12:30:54")
结果:30
Month(日期的字符串或表达式) 传回日期的「月」部份。 例子:Month("12/1/2001")
结果:12
MonthName(month[,abbreviate]) 传回月的名称。
month :待传回月名称的数字 1~12 。譬如, 1 代表一月, 7 代表七月。
abbreviate: 是 (True) 否 (False) 为缩写,譬如 March ,缩写为 Mar 。默认值为 False 。中文的月名称无缩写。 例子: MonthName (7)
结果:七月
Now() 传回系统的日期时间。 例子: Now()
结果: 2001/12/30 10:35:59 AM
Oct() 传回数值的八进位值。八进位可以加「 &O 」表示,譬如八进位 &O10 表示十进制的 8 。 例子: Oct(10)
结果: 12
Replace( 字符串表达式,findnreplacewith[,start[,count[,compare]]]) 将一个字符串取代 部份字。寻找待取代的原字符串 (find) , 若找到则被取代为新字符串 (replacewith) 。
find :待寻找取代的原字符串。
replacewith :取代后的字。
start :从第几个字开始寻找取代, 若未设定则由第一个字开始寻找。
count :取代的次数。 若未设定则所有寻找到的字符串取代字符 串全部被取代。
compare :寻找比较的方法, compare=0 表示二进制比较法, compare=1 表文字比较法, compare =2 表根据比较的 数据型态而定,若省略 compare 则为预设的二进制比较法。 例子: Replace("ABCD123ABC","AB","ab")
结果: abCD123abC
Right( 字符串表达式 ,length) 取字符串右边的几个字, length 为取几个字。 Len 函数可得知字符串的长度。 例子: Right("ABC123",3)
结果: 123
Rnd [(number)] 0~1 的 随机随机数值。 number 是任何有效的数值表达式。若 number 小于 0 表示每次得到相同的 随机随机数值。 number 大于 0 或未提供时表示依序得到下一个 随机随机数值。 >number=0 表示得到最近产生的 随机随机数值。为了避免得到相同的随机随机数顺序,可以于 Rnd 函数前加 Randomize 。 例子: Rnd
结果: 0.498498
Round( 数值表达式 [,D]) 四舍五入。
D :为四舍五入到第几位小数,若省略则四舍五入到整数。 例子: Round(30635,1)
结果: 3.6
RTrim ( 字符串表达式 ) 除去字符串右边的空白字。 LTrim 除去字符串左边的空白字, Trim 函数除去字符串左右两边的空白字。 例子: RTrim ("abc123 ")+"456"
结果: abc123456
Second( 时间的字符串或表达式 )top 传回时间的「秒」部份。 例子:Second("12:30:54")
结果:54
Space( 重复次数 ) 得到重复相同的空白字符串。 例子: A"+Space (5)+"B
结果: A B
说明: A 和 B 中间加入五个空白字。
String( 重复次数,待重复的字 ) 得到重复相同的字符串。 例子: String(5,71)
结果: GGGGG
StrReverse (String(10,71)) 将一个字符串顺序颠倒。 例子: StrReverse ("ABC")
结果: CBA
Time() 传回系统的时间。 例子: Time
结果: 10:35:59 PM
TimeSerial (hour,minute,second) 转换指定的 ( hour,minute,second) 成时间 变量型态。 例子: TimeSerial (10,31,59)
结果: 10:31:59
Timevalue ( 日期的字符串或表达式 ) 转换 成时间变量型态。日期的字符串或表达式从 0:00:00(12:00:00 A.M.) 到 23:59:59(11:59:59 P.M.) 。 例子: Timevalue (" 11:59:59 ")
结果: 11:59:59
Trim( 字符串表达式 ) 除去字符串左右两边的空白字。 例子: Trim(" abc123 ")
结果: abc123
UCase ()top 转换字符串成大写。将小写字母的部份转换成大写,字符串其余部份不变。 例子: UCase ("abc123")
结果: ABC123
VarType ( 变数 ) 传回一个变量类型。与 TypeName 函数相同, VarType 传回变量类型的代码, TypeName 传回变量类型的名称。 例子: VarType ( "I love you!")
结果: 8
Weekday( 日期表达式 ,[FW]) 传回星期几的数字。
FW :设定一周的第一天是星期几。若 省略则表 1( 星期日 ) 。
Firstdayfweek 设定值为: 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三 ),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。 例子: Weekday(" 1/1/2000")
结果: 7
WeekDayName (W,A,FW) 传回星期几的名称。
W :是 (True) 否 (False) 为缩写。譬如 March ,缩写为 Mar 。预设为 False 。中文的星期几名称无缩写。
FW :设定一周的第一天是星期几。 若省略表 1( 星期日 ) 。设定待传回星期几的名称,为一周中的第几天。
A : 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三 ),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。 例子: WeekDayName ("1/1/2000")
结果:星期六
Year() 传回日期的「年」部份。 例子: Year(" 12/1/2000 ")
结果: 2000
ASP函数详解(1)
http://www.yzcc.com/2005/1-16/09311124554.html
Array()
FUNCTION: 返回一个数组
SYNTAX: Array(list)
ARGUMENTS: 字符,数字均可
EXAMPLE: <%
Dim myArray()
For i = 1 to 7
Redim Preserve myArray(i)
myArray(i) = WeekdayName(i)
Next
%>
RESULT: 建立了一个包含7个元素的数组myArray
myArray("Sunday","Monday", ... ... "Saturday")
CInt()
FUNCTION: 将一个表达式转化为数字类型
SYNTAX: CInt(expression)
ARGUMENTS: 任何有效的字符均可
EXAMPLE: <%
f = "234"
response.write cINT(f) + 2
%>
RESULT: 236
转化字符"234"为数字"234",如果字符串为空,则返回0值
CreateObject()
FUNCTION: 建立和返回一个已注册的ACTIVEX组件的实例。
SYNTAX: CreateObject(objName)
ARGUMENTS: objName 是任何一个有效、已注册的ACTIVEX组件的名字.
EXAMPLE: <%
Set con = Server.CreateObject("ADODB.Connection")
%>
RESULT:
CStr()
FUNCTION: 转化一个表达式为字符串.
SYNTAX: CStr(expression)
ARGUMENTS: expression 是任何有效的表达式。
EXAMPLE: <%
s = 3 + 2
response.write "The result is: " & cStr(s)
%>
RESULT: 转化数字“5”为字符“5”。
Date()
FUNCTION: 返回当前系统日期.
SYNTAX: Date()
ARGUMENTS: None.
EXAMPLE: <%=Date%>
RESULT: 8/4/99
DateAdd()
FUNCTION: 返回一个被改变了的日期。
SYNTAX: DateAdd(timeinterval,number,date)
ARGUMENTS: timeinterval is the time interval to add; number is amount of time intervals to add; and date is the starting date.
EXAMPLE: <%
currentDate = #8/4/99#
newDate = DateAdd("m",3,currentDate)
response.write newDate
%>
<%
currentDate = #12:34:45 PM#
newDate = DateAdd("h",3,currentDate)
response.write newDate
%>
RESULT: 11/4/99
3:34:45 PM
"m" = "month";
"d" = "day";
If currentDate is in time format then,
"h" = "hour";
"s" = "second";
DateDiff()
FUNCTION: 返回两个日期之间的差值 。
SYNTAX: DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])
ARGUMENTS: timeinterval 表示相隔时间的类型,如“M“表示“月”。
EXAMPLE: <%
fromDate = #8/4/99#
toDate = #1/1/2000#
response.write "There are " & _
DateDiff("d",fromDate,toDate) & _
" days to millenium from 8/4/99."
%>
RESULT: 从8/4/99 到2000年还有 150 天.
Day()
FUNCTION: 返回一个月的第几日 .
SYNTAX: Day(date)
ARGUMENTS: date 是任何有效的日期。
EXAMPLE: <%=Day(#8/4/99#)%>
RESULT: 4
FormatCurrency()
FUNCTION: 返回表达式,此表达式已被格式化为货币值
SYNTAX: FormatCurrency(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]])
ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置; LeadingDigit 三态常数,指示是否显示小数值小数点前面的零。
EXAMPLE: <%=FormatCurrency(34.3456)%>
RESULT: $34.35
FormatDateTime()
FUNCTION: 返回表达式,此表达式已被格式化为日期或时间
SYNTAX: FormatDateTime(Date, [, NamedFormat])
ARGUMENTS: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate.
EXAMPLE: <%=FormatDateTime("08/4/99", vbLongDate)%>
RESULT: Wednesday, August 04, 1999
FormatNumber()
FUNCTION: 返回表达式,此表达式已被格式化为数值.
SYNTAX: FormatNumber(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]])
ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; LeadingDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; Paren 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; GroupDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。.
EXAMPLE: <%=FormatNumber(45.324567, 3)%>
RESULT: 45.325
FormatPercent()
FUNCTION: 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 (%)
SYNTAX: FormatPercent(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]])
ARGUMENTS: 同上.
EXAMPLE: <%=FormatPercent(0.45267, 3)%>
RESULT: 45.267%
Hour()
FUNCTION: 以24时返回小时数.
SYNTAX: Hour(time)
ARGUMENTS:
EXAMPLE: <%=Hour(#4:45:34 PM#)%>
RESULT: 16
(Hour has been converted to 24-hour system)
Instr()
FUNCTION: 返回字符或字符串在另一个字符串中第一次出现的位置.
SYNTAX: Instr([start, > strToBeSearched, strSearchFor [, compare>)
ARGUMENTS: Start为搜索的起始值,strToBeSearched接受搜索的字符串 strSearchFor要搜索的字符compare 比较方式(详细见ASP常数)
EXAMPLE: <%
strText = "This is a test!!"
pos = Instr(strText, "a")
response.write pos
%>
RESULT: 9
InstrRev()
FUNCTION: 同上,只是从字符串的最后一个搜索起
SYNTAX: InstrRev([start, > strToBeSearched, strSearchFor [, compare])
ARGUMENTS: 同上.
EXAMPLE: <%
strText = "This is a test!!"
pos = InstrRev(strText, "s")
response.write pos
%>
RESULT: 13
Int()
FUNCTION: 返回数值类型,不四舍五入。
SYNTAX: Int(number)
ARGUMENTS:
EXAMPLE: <%=INT(32.89)%>
RESULT: 32
IsArray()
FUNCTION: 判断一对象是否为数组,返回布尔值 .
SYNTAX: IsArray(name)
ARGUMENTS:
EXAMPLE: <%
strTest = "Test!"
response.write IsArray(strTest)
%>
RESULT: False
IsDate()
FUNCTION: 判断一对象是否为日期,返回布尔值
SYNTAX: IsDate(expression)
ARGUMENTS: expression is any valid expression.
EXAMPLE: <%
strTest = "8/4/99"
response.write IsDate(strTest)
%>
RESULT: True
IsEmpty()
FUNCTION: 判断一对象是否初始化,返回布尔值.
SYNTAX: IsEmpty(expression)
ARGUMENTS:
EXAMPLE: <%
Dim i
response.write IsEmpty(i)
%>
RESULT: True
IsNull()
FUNCTION: 判断一对象是否为空,返回布尔值.
SYNTAX: IsNull(expression)
ARGUMENTS:
EXAMPLE: <%
Dim i
response.write IsNull(i)
%>
RESULT: False
IsNumeric()
FUNCTION: 判断一对象是否为数字,返回布尔值.
SYNTAX: IsNumeric(expression)
ARGUMENTS:
EXAMPLE: <%
i = "345"
response.write IsNumeric(i)
%>
RESULT: True
就算数字加了引号,ASP还是认为它是数字。
IsObject()
FUNCTION: 判断一对象是否为对象,返回布尔值.
SYNTAX: IsObject(expression)
ARGUMENTS:
EXAMPLE: <%
Set con = Server.CreateObject("ADODB.Connection")
response.write IsObject(con)
%>
RESULT: True
LBound()
FUNCTION: 返回指定数组维的最小可用下标.
SYNTAX: Lbound(arrayname [, dimension])
ARGUMENTS: dimension 指明要返回哪一维下界的整数。使用 1 表示第一维,2 表示第二维,以此类 推。如果省略 dimension 参数,默认值为 1.
EXAMPLE: <%
i = Array("Monday","Tuesday","Wednesday")
response.write LBound(i)
%>
RESULT: 0
LCase()
FUNCTION: 返回字符串的小写形式
SYNTAX: Lcase(string)
ARGUMENTS: string is any valid string expression.
EXAMPLE: <%
strTest = "This is a test!"
response.write LCase(strTest)
%>
RESULT: this is a test!
Left()
FUNCTION: 返回字符串左边第length个字符以前的字符(含第length个字符).
SYNTAX: Left(string, length)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!"
response.write Left(strTest, 3)
%>
RESULT: Thi
Len()
FUNCTION: 返回字符串的长度.
SYNTAX: Len(string | varName)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!"
response.write Len(strTest)
%>
RESULT: 15
LTrim()
FUNCTION: 去掉字符串左边的空格.
SYNTAX: LTrim(string)
ARGUMENTS:
EXAMPLE: <%
strTest = " This is a test!"
response.write LTrim(strTest)
%>
RESULT: This is a test!
Mid()
FUNCTION: 返回特定长度的字符串(从start开始,长度为length).
SYNTAX: Mid(string, start [, length])
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test! Today is Monday."
response.write Mid(strTest, 17, 5)
%>
RESULT: Today
Minute()
FUNCTION: 返回时间的分钟
SYNTAX: Minute(time)
ARGUMENTS:
EXAMPLE: <%=Minute(#12:45:32 PM#)%>
RESULT: 45
Month()
FUNCTION: 返回日期.
SYNTAX: Month(date)
ARGUMENTS: date is any valid date expression.
EXAMPLE: <%=Month(#08/04/99#)%>
RESULT: 8
MonthName()
FUNCTION: Returns a string identifying the specified month.
SYNTAX: MonthName(month, [, Abb〕)
ARGUMENTS: month is the numeric representation for a given month; Abb (optional) is a boolean value used to display month abbreviation. True will display the abbreviated month name and False (default) will not show the abbreviation.
EXAMPLE: <%=MonthName(Month(#08/04/99#))%>
RESULT: August
Now()
FUNCTION: Returns the current system date and time.
SYNTAX: Now()
ARGUMENTS: None
EXAMPLE: <%=Now%>
RESULT: 8/4/99 9:30:16 AM
Replace()
FUNCTION: Returns a string in which a specified sub-string has been replaced with another substring a specified number of times.
SYNTAX: Replace(strToBeSearched, strSearchFor, strReplaceWith [, start [, count [, compare]]])
ARGUMENTS: strToBeSearched is a string expression containing a sub-string to be replaced; strSearchFor is the string expression to search for within strToBeSearched; strReplaceWith is the string expression to replace sub-string strSearchFor; start (optional) is the numeric character position to begin search; count (optional) is a value indicating the comparision constant.
EXAMPLE: <%
strTest = "This is an apple!"
response.write Replace(strTest, "apple", "orange")
%>
RESULT: This is an orange!
Right()
FUNCTION: 返回字符串右边第length个字符以前的字符(含第length个字符).
SYNTAX: Right(string, length)
ARGUMENTS: .
EXAMPLE: <%
strTest = "This is an test!"
response.write Right(strTest, 3)
%>
RESULT: st!
Rnd()
FUNCTION: 产生一个随机数.
SYNTAX: Rnd [ (number) ]
ARGUMENTS:
EXAMPLE: <%
Randomize()
response.write RND()
%>
RESULT: 任何一个在0 到 1 之间的数
Round()
FUNCTION: 返回按指定位数进行四舍五入的数值.
SYNTAX: Round(expression [, numRight])
ARGUMENTS: numRight数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数.
EXAMPLE: <%
i = 32.45678
response.write Round(i)
%>
RESULT: 32
ASP函数详解(1)
http://www.yzcc.com/2005/1-16/09311124554.html
Array()
FUNCTION: 返回一个数组
SYNTAX: Array(list)
ARGUMENTS: 字符,数字均可
EXAMPLE: <%
Dim myArray()
For i = 1 to 7
Redim Preserve myArray(i)
myArray(i) = WeekdayName(i)
Next
%>
RESULT: 建立了一个包含7个元素的数组myArray
myArray("Sunday","Monday", ... ... "Saturday")
CInt()
FUNCTION: 将一个表达式转化为数字类型
SYNTAX: CInt(expression)
ARGUMENTS: 任何有效的字符均可
EXAMPLE: <%
f = "234"
response.write cINT(f) + 2
%>
RESULT: 236
转化字符"234"为数字"234",如果字符串为空,则返回0值
CreateObject()
FUNCTION: 建立和返回一个已注册的ACTIVEX组件的实例。
SYNTAX: CreateObject(objName)
ARGUMENTS: objName 是任何一个有效、已注册的ACTIVEX组件的名字.
EXAMPLE: <%
Set con = Server.CreateObject("ADODB.Connection")
%>
RESULT:
CStr()
FUNCTION: 转化一个表达式为字符串.
SYNTAX: CStr(expression)
ARGUMENTS: expression 是任何有效的表达式。
EXAMPLE: <%
s = 3 + 2
response.write "The result is: " & cStr(s)
%>
RESULT: 转化数字“5”为字符“5”。
Date()
FUNCTION: 返回当前系统日期.
SYNTAX: Date()
ARGUMENTS: None.
EXAMPLE: <%=Date%>
RESULT: 8/4/99
DateAdd()
FUNCTION: 返回一个被改变了的日期。
SYNTAX: DateAdd(timeinterval,number,date)
ARGUMENTS: timeinterval is the time interval to add; number is amount of time intervals to add; and date is the starting date.
EXAMPLE: <%
currentDate = #8/4/99#
newDate = DateAdd("m",3,currentDate)
response.write newDate
%>
<%
currentDate = #12:34:45 PM#
newDate = DateAdd("h",3,currentDate)
response.write newDate
%>
RESULT: 11/4/99
3:34:45 PM
"m" = "month";
"d" = "day";
If currentDate is in time format then,
"h" = "hour";
"s" = "second";
DateDiff()
FUNCTION: 返回两个日期之间的差值 。
SYNTAX: DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])
ARGUMENTS: timeinterval 表示相隔时间的类型,如“M“表示“月”。
EXAMPLE: <%
fromDate = #8/4/99#
toDate = #1/1/2000#
response.write "There are " & _
DateDiff("d",fromDate,toDate) & _
" days to millenium from 8/4/99."
%>
RESULT: 从8/4/99 到2000年还有 150 天.
Day()
FUNCTION: 返回一个月的第几日 .
SYNTAX: Day(date)
ARGUMENTS: date 是任何有效的日期。
EXAMPLE: <%=Day(#8/4/99#)%>
RESULT: 4
FormatCurrency()
FUNCTION: 返回表达式,此表达式已被格式化为货币值
SYNTAX: FormatCurrency(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]])
ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置; LeadingDigit 三态常数,指示是否显示小数值小数点前面的零。
EXAMPLE: <%=FormatCurrency(34.3456)%>
RESULT: $34.35
FormatDateTime()
FUNCTION: 返回表达式,此表达式已被格式化为日期或时间
SYNTAX: FormatDateTime(Date, [, NamedFormat])
ARGUMENTS: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate.
EXAMPLE: <%=FormatDateTime("08/4/99", vbLongDate)%>
RESULT: Wednesday, August 04, 1999
FormatNumber()
FUNCTION: 返回表达式,此表达式已被格式化为数值.
SYNTAX: FormatNumber(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]])
ARGUMENTS: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; LeadingDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; Paren 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; GroupDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。.
EXAMPLE: <%=FormatNumber(45.324567, 3)%>
RESULT: 45.325
FormatPercent()
FUNCTION: 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 (%)
SYNTAX: FormatPercent(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit]]]])
ARGUMENTS: 同上.
EXAMPLE: <%=FormatPercent(0.45267, 3)%>
RESULT: 45.267%
Hour()
FUNCTION: 以24时返回小时数.
SYNTAX: Hour(time)
ARGUMENTS:
EXAMPLE: <%=Hour(#4:45:34 PM#)%>
RESULT: 16
(Hour has been converted to 24-hour system)
Instr()
FUNCTION: 返回字符或字符串在另一个字符串中第一次出现的位置.
SYNTAX: Instr([start, > strToBeSearched, strSearchFor [, compare>)
ARGUMENTS: Start为搜索的起始值,strToBeSearched接受搜索的字符串 strSearchFor要搜索的字符compare 比较方式(详细见ASP常数)
EXAMPLE: <%
strText = "This is a test!!"
pos = Instr(strText, "a")
response.write pos
%>
RESULT: 9
InstrRev()
FUNCTION: 同上,只是从字符串的最后一个搜索起
SYNTAX: InstrRev([start, > strToBeSearched, strSearchFor [, compare])
ARGUMENTS: 同上.
EXAMPLE: <%
strText = "This is a test!!"
pos = InstrRev(strText, "s")
response.write pos
%>
RESULT: 13
Int()
FUNCTION: 返回数值类型,不四舍五入。
SYNTAX: Int(number)
ARGUMENTS:
EXAMPLE: <%=INT(32.89)%>
RESULT: 32
IsArray()
FUNCTION: 判断一对象是否为数组,返回布尔值 .
SYNTAX: IsArray(name)
ARGUMENTS:
EXAMPLE: <%
strTest = "Test!"
response.write IsArray(strTest)
%>
RESULT: False
IsDate()
FUNCTION: 判断一对象是否为日期,返回布尔值
SYNTAX: IsDate(expression)
ARGUMENTS: expression is any valid expression.
EXAMPLE: <%
strTest = "8/4/99"
response.write IsDate(strTest)
%>
RESULT: True
IsEmpty()
FUNCTION: 判断一对象是否初始化,返回布尔值.
SYNTAX: IsEmpty(expression)
ARGUMENTS:
EXAMPLE: <%
Dim i
response.write IsEmpty(i)
%>
RESULT: True
IsNull()
FUNCTION: 判断一对象是否为空,返回布尔值.
SYNTAX: IsNull(expression)
ARGUMENTS:
EXAMPLE: <%
Dim i
response.write IsNull(i)
%>
RESULT: False
IsNumeric()
FUNCTION: 判断一对象是否为数字,返回布尔值.
SYNTAX: IsNumeric(expression)
ARGUMENTS:
EXAMPLE: <%
i = "345"
response.write IsNumeric(i)
%>
RESULT: True
就算数字加了引号,ASP还是认为它是数字。
IsObject()
FUNCTION: 判断一对象是否为对象,返回布尔值.
SYNTAX: IsObject(expression)
ARGUMENTS:
EXAMPLE: <%
Set con = Server.CreateObject("ADODB.Connection")
response.write IsObject(con)
%>
RESULT: True
LBound()
FUNCTION: 返回指定数组维的最小可用下标.
SYNTAX: Lbound(arrayname [, dimension])
ARGUMENTS: dimension 指明要返回哪一维下界的整数。使用 1 表示第一维,2 表示第二维,以此类 推。如果省略 dimension 参数,默认值为 1.
EXAMPLE: <%
i = Array("Monday","Tuesday","Wednesday")
response.write LBound(i)
%>
RESULT: 0
LCase()
FUNCTION: 返回字符串的小写形式
SYNTAX: Lcase(string)
ARGUMENTS: string is any valid string expression.
EXAMPLE: <%
strTest = "This is a test!"
response.write LCase(strTest)
%>
RESULT: this is a test!
Left()
FUNCTION: 返回字符串左边第length个字符以前的字符(含第length个字符).
SYNTAX: Left(string, length)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!"
response.write Left(strTest, 3)
%>
RESULT: Thi
Len()
FUNCTION: 返回字符串的长度.
SYNTAX: Len(string | varName)
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test!"
response.write Len(strTest)
%>
RESULT: 15
LTrim()
FUNCTION: 去掉字符串左边的空格.
SYNTAX: LTrim(string)
ARGUMENTS:
EXAMPLE: <%
strTest = " This is a test!"
response.write LTrim(strTest)
%>
RESULT: This is a test!
Mid()
FUNCTION: 返回特定长度的字符串(从start开始,长度为length).
SYNTAX: Mid(string, start [, length])
ARGUMENTS:
EXAMPLE: <%
strTest = "This is a test! Today is Monday."
response.write Mid(strTest, 17, 5)
%>
RESULT: Today
Minute()
FUNCTION: 返回时间的分钟
SYNTAX: Minute(time)
ARGUMENTS:
EXAMPLE: <%=Minute(#12:45:32 PM#)%>
RESULT: 45
Month()
FUNCTION: 返回日期.
SYNTAX: Month(date)
ARGUMENTS: date is any valid date expression.
EXAMPLE: <%=Month(#08/04/99#)%>
RESULT: 8
MonthName()
FUNCTION: Returns a string identifying the specified month.
SYNTAX: MonthName(month, [, Abb〕)
ARGUMENTS: month is the numeric representation for a given month; Abb (optional) is a boolean value used to display month abbreviation. True will display the abbreviated month name and False (default) will not show the abbreviation.
EXAMPLE: <%=MonthName(Month(#08/04/99#))%>
RESULT: August
Now()
FUNCTION: Returns the current system date and time.
SYNTAX: Now()
ARGUMENTS: None
EXAMPLE: <%=Now%>
RESULT: 8/4/99 9:30:16 AM
Replace()
FUNCTION: Returns a string in which a specified sub-string has been replaced with another substring a specified number of times.
SYNTAX: Replace(strToBeSearched, strSearchFor, strReplaceWith [, start [, count [, compare]]])
ARGUMENTS: strToBeSearched is a string expression containing a sub-string to be replaced; strSearchFor is the string expression to search for within strToBeSearched; strRepl, aceWith is the string expression to replace sub-string strSearchFor; start (optional) is the numeric character position to begin search; count (optional) is a value indicating the comparision constant.
EXAMPLE: <%
strTest = "This is an apple!"
response.write Replace(strTest, "apple", "orange")
%>
RESULT: This is an orange!
Right()
FUNCTION: 返回字符串右边第length个字符以前的字符(含第length个字符).
SYNTAX: Right(string, length)
ARGUMENTS: .
EXAMPLE: <%
strTest = "This is an test!"
response.write Right(strTest, 3)
%>
RESULT: st!
Rnd()
FUNCTION: 产生一个随机数.
SYNTAX: Rnd [ (number) ]
ARGUMENTS:
EXAMPLE: <%
Randomize()
response.write RND()
%>
RESULT: 任何一个在0 到 1 之间的数
Round()
FUNCTION: 返回按指定位数进行四舍五入的数值.
SYNTAX: Round(expression [, numRight])
ARGUMENTS: numRight数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数.
EXAMPLE: <%
i = 32.45678
response.write Round(i)
%>
RESULT: 32
http://www.bc-cn.net/Article/web/asp/jszl/200410/194.html
ASP语法速查表
作者:佚名 文章来源:不详 点击数:1474 更新时间:2004-10-16
VBScript 函数
功能说明
例子
Abs (数值) 绝对值。一个数字的绝对值是它的正值。空字符串 (null) 的绝对值,也是空字符串。未初始化的变数,其绝对为 0 例子:ABS(-2000)
结果:2000
Array (以逗点分隔的数组元素) Array 函数传回数组元素的值。 例子:
A=Array(1,2,3)
B=A(2)
结果: 2
说明:变量B为A数组的第二个元素的值。
Asc (字符串) 将字符串的第一字母转换成 ANSI (美国国家标准符号)字码。 例子:Asc(”Internet”)
结果:73
说明:显示第一字母 I 的 ANSI 字码。
CBool(表达式) 转换成布尔逻辑值变量型态(True 或False ) 例子:CBool(1+2)
结果:True
CDate (日期表达式) 换成日期变量型态。可先使用 IsDate 函数判断是否可以转换成日 期。 例子: CDate (now( )+2)
结果:2000/5/28 10:30:59
CDbl(表达式) 转换成DOUBLE变量型态。
Chr ( ANSI 字码) 将ASCII 字码转换成字符。 例子: Chr ( 72 )
结果: H
CInt (表达式) 转换成整数变量型态。 例子: CInt ("3.12")
结果: 3
CLng (表达式) 转换成LONG 变量型态。
CSng (表达式) 转换成SINGLE 变量型态。
CStr (表达式) 转换成字符串变量型态。
Date ( )top 传回系统的日期。 例子: Date
结果: 2000/5/13
DateAdd ( I , N , D ) 将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分
s Second 秒
N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。
D :待加减的日期。 例子: DateAdd ( "m" , 1 , "31-Jan-98")
结果: 28-Feb-98
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
结果: 1999/2/9
说明:将一个日期 30-Jan-99 加上 20 天后的日期。
DateDiff (I , D1 , D2[,FW[,FY]]) 计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
m Minute 分
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周 例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")
结果: 97
说明:显示两个日期之间的期间为 97 天。
DatePart (I,D,[,FW[,FY]]) 传回一个日期的之部份。
>I :设定传回那一部份。譬如 >I="d" 表示传回 部份为日。 >I 的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
m Minute 分
s Second 秒
D :待计算的日期。
>FW :设定每周第一天为星期几, 若未设定则表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一>3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周 例子: DatePart ("m","25-Mar-99 ")
结果: 3
说明:显示传回一个日期 的月部份。
Dateserial (year,month,day) 转换(year,month,day) 成日期变量型态。 例子: DateSerial (99,10,1)
结果: 1999/10/1
Datevalue ( 日期的字符串或表达式 ) 转换成日期变量型态,日期从 January 1,100 到 December 31,9999 。格式为 month,day,and year 或 month/day/year 。譬如: December 30,1999 、 Dec 30,1999 、 12/30/1999 、 12/30/99 例子: Datevalue ("January 1,2002 ")
结果: 2002/1/1
Day( 日期的字符串或表达式 ) 传回日期的「日」部份。 例子: Day(" 12/1/1999 ")
结果: 1
Fix( 表达式 )top 转换字符串成整数数字型态。与 Int 函数相同。若为 null 时传回 null 。
Int (number) 与 Fix(number) 的差别在负数。如 Int (-5.6)=-6 , Fix(-5.6)=-5 。 例子: Fix(5.6)
结果: 5
Hex( 表达式 )top 传回数值的十六进制值。若表达式为 null 时 Hex( 表达式 )=null ,若表达式 =Empty 时 Hex( 表达式 )=0 。 16 进位可以加「 &H 」表示,譬如 16 进位 &H10 表示十进制的 16 。 例子: Hex(30)
结果: 1E
Hour( 时间的字符串或表达式 ) 传回时间的「小时」部份。 例子: Hour("12:30:54 ")
结果: 12
InStr ([start,]string1,string2[,compare]) top 将一 个 字符串由左 而右与另一个比较,传回第一个相同的位置。
start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。 例子: InStr("abc123def123","12")
结果: 4
InstrRev ([start,]string1,string2[,compare]) 将一 个 字符串 由右而左与另一个比较,传回第一个相同的位置。
start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。 例子: InstrRev ("abc123def123","12")
结果: 10
Int ( 表达式 ) 传回一个数值的整数部份。与 Fix 函数相同。 例子: Int (5.6)
结果: 5
IsArray ( 变数 ) 测试变量是 (True) 否 (False) 是一个数组。 例子: IsArray (3)
结果: False
说明:不是一个数组。
IsDate ( 日期或字符串的表达式 ) 是否可以转换成日期。日期从 January 1,100 A.D. 到 December 31,9999 A.D 。 例子: IsDate ("December 31,1999 ")
结果: True
说明:可以转换成日期。
IsEmpty ( 变数 ) 测试变量是 (True) 否 (False) 已经被初始化 例子: IsEmpty (a)
结果: True
IsNull ( 变数 ) 测试变数是 (True) 否 (False) 不是有效的数据。 例子: IsNull ("")
结果: False
说明:是有效的数据。
IsNumeric ( 表达式 ) 是 (True) 否 (False) 是数字。 例子: IsNumeric ("abc123")
结果: False
说明:不是数字。
LCase ( 字符串表达式 ) top 转换字符串成小写。将大写字母的部份转换成小写。字符串其余的部份不变。 例子: LCase ("ABC123")
结果: abc123
Left( 字符串表达式 ,length) 取字符串左边的几个字。 length 为取个字。 Len 函数可得知字符串的长度。 例子: Left("ABC123",3)
结果: ABC
Len( 字符串表达式 变量 ) 取得字符串的长度。 例子: Len("ABC123")
结果: 6
LTrim ( 字符串表达式 ) 除去字符串左边的空白字。 RTrim 除去字符串右边的空白字, Trim 函数除去字符串左右两边的空白字。 例子: LTrim ("456+" abc ")
结果: 456abc123
Mid( 字符串表达式 ,start[,length]) top 取字符串中的几个字。 start 为从第几个 字取起, length 为取几个字, 若略 length 则从 start 取到最右底。由Len 函数可得知字符串的长度。 例子: Mid("abc123",2,3)
结果: c12
Minute( 日期的字符串或表达式 ) 传回时间的「分钟」部份。 例子: Minute("12:30:54")
结果:30
Month(日期的字符串或表达式) 传回日期的「月」部份。 例子:Month("12/1/2001")
结果:12
MonthName(month[,abbreviate]) 传回月的名称。
month :待传回月名称的数字 1~12 。譬如, 1 代表一月, 7 代表七月。
abbreviate: 是 (True) 否 (False) 为缩写,譬如 March ,缩写为 Mar 。默认值为 False 。中文的月名称无缩写。 例子: MonthName (7)
结果:七月
Now() 传回系统的日期时间。 例子: Now()
结果: 2001/12/30 10:35:59 AM
Oct() 传回数值的八进位值。八进位可以加「 &O 」表示,譬如八进位 &O10 表示十进制的 8 。 例子: Oct(10)
结果: 12
Replace( 字符串表达式,findnreplacewith[,start[,count[,compare]]]) 将一个字符串取代 部份字。寻找待取代的原字符串 (find) , 若找到则被取代为新字符串 (replacewith) 。
find :待寻找取代的原字符串。
replacewith :取代后的字。
start :从第几个字开始寻找取代, 若未设定则由第一个字开始寻找。
count :取代的次数。 若未设定则所有寻找到的字符串取代字符 串全部被取代。
compare :寻找比较的方法, compare=0 表示二进制比较法, compare=1 表文字比较法, compare =2 表根据比较的 数据型态而定,若省略 compare 则为预设的二进制比较法。 例子: Replace("ABCD123ABC","AB","ab")
结果: abCD123abC
Right( 字符串表达式 ,length) 取字符串右边的几个字, length 为取几个字。 Len 函数可得知字符串的长度。 例子: Right("ABC123",3)
结果: 123
Rnd [(number)] 0~1 的 随机随机数值。 number 是任何有效的数值表达式。若 number 小于 0 表示每次得到相同的 随机随机数值。 number 大于 0 或未提供时表示依序得到下一个 随机随机数值。 >number=0 表示得到最近产生的 随机随机数值。为了避免得到相同的随机随机数顺序,可以于 Rnd 函数前加 Randomize 。 例子: Rnd
结果: 0.498498
Round( 数值表达式 [,D]) 四舍五入。
D :为四舍五入到第几位小数,若省略则四舍五入到整数。 例子: Round(30635,1)
结果: 3.6
RTrim ( 字符串表达式 ) 除去字符串右边的空白字。 LTrim 除去字符串左边的空白字, Trim 函数除去字符串左右两边的空白字。 例子: RTrim ("abc123 ")+"456"
结果: abc123456
Second( 时间的字符串或表达式 )top 传回时间的「秒」部份。 例子:Second("12:30:54")
结果:54
Space( 重复次数 ) 得到重复相同的空白字符串。 例子: A"+Space (5)+"B
结果: A B
说明: A 和 B 中间加入五个空白字。
String( 重复次数,待重复的字 ) 得到重复相同的字符串。 例子: String(5,71)
结果: GGGGG
StrReverse (String(10,71)) 将一个字符串顺序颠倒。 例子: StrReverse ("ABC")
结果: CBA
Time() 传回系统的时间。 例子: Time
结果: 10:35:59 PM
TimeSerial (hour,minute,second) 转换指定的 ( hour,minute,second) 成时间 变量型态。 例子: TimeSerial (10,31,59)
结果: 10:31:59
Timevalue ( 日期的字符串或表达式 ) 转换 成时间变量型态。日期的字符串或表达式从 0:00:00(12:00:00 A.M.) 到 23:59:59(11:59:59 P.M.) 。 例子: Timevalue (" 11:59:59 ")
结果: 11:59:59
Trim( 字符串表达式 ) 除去字符串左右两边的空白字。 例子: Trim(" abc123 ")
结果: abc123
UCase ()top 转换字符串成大写。将小写字母的部份转换成大写,字符串其余部份不变。 例子: UCase ("abc123")
结果: ABC123
VarType ( 变数 ) 传回一个变量类型。与 TypeName 函数相同, VarType 传回变量类型的代码, TypeName 传回变量类型的名称。 例子: VarType ( "I love you!")
结果: 8
Weekday( 日期表达式 ,[FW]) 传回星期几的数字。
FW :设定一周的第一天是星期几。若 省略则表 1( 星期日 ) 。
Firstdayfweek 设定值为: 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三 ),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。 例子: Weekday(" 1/1/2000")
结果: 7
WeekDayName (W,A,FW) 传回星期几的名称。
W :是 (True) 否 (False) 为缩写。譬如 March ,缩写为 Mar 。预设为 False 。中文的星期几名称无缩写。
FW :设定一周的第一天是星期几。 若省略表 1( 星期日 ) 。设定待传回星期几的名称,为一周中的第几天。
A : 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三&, nbsp;),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。 例子: WeekDayName ("1/1/2000")
结果:星期六
Year() 传回日期的「年」部份。 例子: Year(" 12/1/2000 ")
结果: 2000
ASP中一种效率极高的分类算法(一)
(2002年04月29日22:55:00 阅读: 1 )
在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这样的程序时,要涉及到软件的分类;如此等等。可以说,分类是一个很普遍的问题。
我常常面试一些程序员,而且我几乎毫无例外地要问他们一些关于分类算法的问题。下面的举几个我常常询问的问题。你认为你可以很轻松地回答么^_^.
1、分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段?
2、如何快速地从这个Table恢复出一棵树;
3、如何判断某个分类是否是另一个分类的子类;
4、如何查找某个分类的所有产品;
5、如何生成分类所在的路径。
6、如何新增分类;
在不限制分类的级数和每级分类的个数时,这些问题并不是可以轻松回答的。本文试图解决这些问题。
分类的数据结构
我们知道:分类的数据结构实际上是一棵树。在《数据结构》课程中,大家可能学过Tree的算法。由于在网站建设中我们大量使用数据库,所以我们将从Tree在数据库中的存储谈起。
为简化问题,我们假设每个节点只需要保留Name这一个信息。我们需要为每个节点编号。编号的方法有很多种。在数据库中常用的就是自动编号。这在Access、SQL Server、Oracle中都是这样。假设编号字段为ID。
为了表示某个节点ID1是另外一个节点ID2的父节点,我们需要在数据库中再保留一个字段,说明这个分类是属于哪个节点的儿子。把这个字段取名为FatherID。如这里的ID2,其FatherID就是ID1。
这样,我们就得到了分类Catalog的数据表定义:
Create Table [Catalog](
[ID] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[FatherID] [int] NOT NULL
);
约定:我们约定用-1作为最上面一层分类的父亲编码。编号为-1的分类。这是一个虚拟的分类。它在数据库中没有记录。
如何恢复出一棵树
上面的Catalog定义的最大优势,就在于用它可以轻松地恢复出一棵树—分类树。为了更清楚地展示算法,我们先考虑一个简单的问题:怎样显示某个分类的下一级分类。我们知道,要查询某个分类FID的下一级分类,SQL语句非常简单:
select Name from catalog where FatherID=FID
显示这些类别时,我们简单地用< LI>来做到:
< %
REM oConn---数据库连接,调用GetChildren时已经打开
REM FID-----当前分类的编号
Function GetChildren(oConn,FID)
strSQL = "select ID,Name from catalog where FatherID="&FID
set rsCatalog = oConn.Execute(strSQL)
%>
< UL>
< %
Do while not rsCatalog.Eof
%>
< LI>< %=rsCatalog("Name")%>
< %
Loop
%>
< /UL>
< %
rsCatalog.Close
End Function
%>
现在我们来看看如何显示FID下的所有分类。这需要用到递归算法。我们只需要在GetChildren函数中简单地对所有ID进行调用:GetChildren(oConn,Catalog(“ID”))就可以了。
< %
REM oConn---数据库连接,已经打开
REM FID-----当前分类的编号
Function GetChildren(oConn,FID)
strSQL = "select Name from catalog where FatherID="&FID
set rsCatalog = oConn.Execute(strSQL)
%>
< UL>
< %
Do while not rsCatalog.Eof
%>
< LI>
< %=GetChildren(oConn,Catalog("ID"))%>
< %
Loop
%>
< /UL>
< %
rsCatalog.Close
End Function
%>
修改后的GetChildren就可以完成显示FID分类的所有子分类的任务。要显示所有的分类,只需要如此调用就可以了:
< %
REM strConn--连接数据库的字符串,请根据情况修改
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open strConn
=GetChildren(oConn,-1)
oConn.Close
%>
如何查找某个分类的所有产品;
现在来解决我们在前面提出的第四个问题。第三个问题留作习题。我们假设产品的数据表如下定义:
Create Table Product(
[ID] [int] NOT NULL,
[Name] [nvchar] NOT NULL,
[FatherID] [int] NOT NULL
);
其中,ID是产品的编号,Name是产品的名称,而FatherID是产品所属的分类。
对第四个问题,很容易想到的办法是:先找到这个分类FID的所有子类,然后查询所有子类下的所有产品。实现这个算法实际上很复杂。代码大致如下:
< %
Function GetAllID(oConn,FID)
Dim strTemp
If FID=-1 then
strTemp = ""
else
strTemp =","
end if
strSQL = "select Name from catalog where FatherID="&FID
set rsCatalog = oConn.Execute(strSQL)
Do while not rsCatalog.Eof
strTemp=strTemp&rsCatalog("ID")&GetAllID(oConn,Catalog("ID")) REM 递归调用
Loop
rsCatalog.Close
分类算法要解决的问题
在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这样的程序时,要涉及到软件的分类;如此等等。可以说,分类是一个很普遍的问题。
我常常面试一些程序员,而且我几乎毫无例外地要问他们一些关于分类算法的问题。下面的举几个我常常询问的问题。你认为你可以很轻松地回答么^_^.
1、分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段?
2、如何快速地从这个Table恢复出一棵树;
3、如何判断某个分类是否是另一个分类的子类;
4、如何查找某个分类的所有产品;
5、如何生成分类所在的路径。
6、如何新增分类;
在不限制分类的级数和每级分类的个数时,这些问题并不是可以轻松回答的。本文试图解决这些问题。
分类的数据结构
我们知道:分类的数据结构实际上是一棵树。在《数据结构》课程中,大家可能学过Tree的算法。由于在网站建设中我们大量使用数据库,所以我们将从Tree在数据库中的存储谈起。
为简化问题,我们假设每个节点只需要保留Name这一个信息。我们需要为每个节点编号。编号的方法有很多种。在数据库中常用的就是自动编号。这在Access、SQL Server、Oracle中都是这样。假设编号字段为ID。
为了表示某个节点ID1是另外一个节点ID2的父节点,我们需要在数据库中再保留一个字段,说明这个分类是属于哪个节点的儿子。把这个字段取名为FatherID。如这里的ID2,其FatherID就是ID1。
这样,我们就得到了分类Catalog的数据表定义:
Create Table [Catalog](
[ID] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[FatherID] [int] NOT NULL
);
约定:我们约定用-1作为最上面一层分类的父亲编码。编号为-1的分类。这是一个虚拟的分类。它在数据库中没有记录。
如何恢复出一棵树
上面的Catalog定义的最大优势,就在于用它可以轻松地恢复出一棵树—分类树。为了更清楚地展示算法,我们先考虑一个简单的问题:怎样显示某个分类的下一级分类。我们知道,要查询某个分类FID的下一级分类,SQL语句非常简单:
select Name from catalog where FatherID=FID
显示这些类别时,我们简单地用〈 LI〉来做到:
〈%
REM oConn---数据库连接,调用GetChildren时已经打开
REM FID-----当前分类的编号
Function GetChildren(oConn,FID)
strSQL = "select ID,Name from catalog where FatherID="&FID
set rsCatalog = oConn.Execute(strSQL)
%〉
〈UL〉
〈%
Do while not rsCatalog.Eof
%〉
〈LI〉〈%=rsCatalog("Name")%〉
〈%
Loop
%〉
〈/UL〉
〈%
rsCatalog.Close
End Function
%〉
现在我们来看看如何显示FID下的所有分类。这需要用到递归算法。我们只需要在GetChildren函数中简单地对所有ID进行调用:GetChildren(oConn,Catalog(“ID”))就可以了。
〈%
REM oConn---数据库连接,已经打开
REM FID-----当前分类的编号
Function GetChildren(oConn,FID)
strSQL = "select Name from catalog where FatherID="&FID
set rsCatalog = oConn.Execute(strSQL)
%〉
〈UL〉
〈%
Do while not rsCatalog.Eof
%〉
〈LI〉〈%=rsCatalog("Name")%〉
〈%=GetChildren(oConn,Catalog("ID"))%〉
〈%
Loop
%〉
〈/UL〉
〈%
rsCatalog.Close
End Function
%〉
修改后的GetChildren就可以完成显示FID分类的所有子分类的任务。要显示所有的分类,只需要如此调用就可以了:
〈%
REM strConn--连接数据库的字符串,请根据情况修改
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open strConn
=GetChildren(oConn,-1)
oConn.Close
%〉
如何查找某个分类的所有产品;
现在来解决我们在前面提出的第四个问题。第三个问题留作习题。我们假设产品的数据表如下定义:
Create Table Product(
[ID] [int] NOT NULL,
[Name] [nvchar] NOT NULL,
[FatherID] [int] NOT NULL
);
其中,ID是产品的编号,Name是产品的名称,而FatherID是产品所属的分类。
对第四个问题,很容易想到的办法是:先找到这个分类FID的所有子类,然后查询所有子类下的所有产品。实现这个算法实际上很复杂。代码大致如下:
〈%
Function GetAllID(oConn,FID)
Dim strTemp
If FID=-1 then
strTemp = ""
else
strTemp =","
end if
strSQL = "select Name from catalog where FatherID="&FID
set rsCatalog = oConn.Execute(strSQL)
Do while not rsCatalog.Eof
strTemp=strTemp&rsCatalog("ID")&GetAllID(oConn,Catalog("ID")) REM 递归调用
Loop
rsCatalog.Close
GetAllID = strTemp
End Function
REM strConn--连接数据库的字符串,请根据情况修改
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open strConn
FID = Request.QueryString("FID")
strSQL = "select top 100 * from Product where FatherID in ("&GetAllID(oConn,FID)&")"
set rsProduct=oConn.Execute(strSQL)
%〉
〈UL〉〈%
Do while not rsProduct.EOF
%〉
〈LI〉〈%=rsProduct("Name")%〉
〈%
Loop
%〉
〈/UL〉
〈%rsProduct.Close
oConn.Close
%〉
一个asp加密方法(好像是什么什么RSA,上次朋友相托写的)存为html就行了
<%
Class clsRSA
Public Key
Public Sub GetKey()
Key=3
end Sub
Public Function Encode(ByVal Message)
On Error Resume Next
Dim L_Message
Dim i
Dim Asc_Message
L_Message = Len(Message)
If L_Message = 0 Then Exit Function
call GetKey()
For i = 1 To L_Message
Asc_Message = Asc(Mid(Message,i, 1))
if Asc_Message\2=0 then
Asc_Message=Asc_Message+key
else
Asc_Message=Asc_Message+key+1
end if
Encode=Encode & Chr(Asc_Message)
next
End Function
Public Function Decode(ByVal Message)
On Error Resume Next
Dim L_Message
Dim i
Dim Asc_Message
L_Message = Len(Message)
If L_Message = 0 Then Exit Function
call GetKey()
For i = 1 To L_Message
Asc_Message = Asc(Mid(Message,i, 1))
if (Asc_Message - Key)\2=0 then
Asc_Message=Asc_Message - Key
else
Asc_Message=Asc_Message - Key-1
end if
Decode=Decode & Chr(Asc_Message)
next
End Function
End Class
key = "138505633zzszyzf"
Set ObjRSA = New clsRSA
pass=request("pass")
if pass<>"" then enpass= ObjRSA.Decode(pass)
%>
<head>
<title>1234</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>BODY,TD,INPUT{}{FONT-SIZE:9PT}</style>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="enpass" method="post" >
密文:<input type="text" name="pass" value="<%=Pass%>">
<input type="submit" name="Submit" value="解密">
</form>
明文:<input type=text size=34 maxlength=16 value=’<%=enpass%>’>
</body>
Class clsRSA
Public PrivateKey
Public PublicKey
Public Modulus
Public Function Crypt(pLngMessage, pLngKey)
On Error Resume Next
Dim lLngMod
Dim lLngResult
Dim lLngIndex
If pLngKey Mod 2 = 0 Then
lLngResult = 1
For lLngIndex = 1 To pLngKey / 2
lLngMod = (pLngMessage ^ 2) Mod Modulus
’’ Mod may error on key generation
lLngResult = (lLngMod * lLngResult) Mod Modulus
If Err Then Exit Function
Next
Else
lLngResult = pLngMessage
For lLngIndex = 1 To pLngKey / 2
lLngMod = (pLngMessage ^ 2) Mod Modulus
On Error Resume Next
’’ Mod may error on key generation
lLngResult = (lLngMod * lLngResult) Mod Modulus
If Err Then Exit Function
Next
End If
Crypt = lLngResult
End Function
Public Function Encode(ByVal pStrMessage)
Dim lLngIndex
Dim lLngMaxIndex
Dim lBytAscii
Dim lLngEncrypted
lLngMaxIndex = Len(pStrMessage)
If lLngMaxIndex = 0 Then Exit Function
For lLngIndex = 1 To lLngMaxIndex
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
lLngEncrypted = Crypt(lBytAscii, PublicKey)
Encode = Encode & NumberToHex(lLngEncrypted, 4)
Next
End Function
Public Function Decode(ByVal pStrMessage)
Dim lBytAscii
Dim lLngIndex
Dim lLngMaxIndex
Dim lLngEncryptedData
Decode = ""
lLngMaxIndex = Len(pStrMessage)
For lLngIndex = 1 To lLngMaxIndex Step 4
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
Decode = Decode & Chr(lBytAscii)
Next
End Function
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
End Function
Private Function HexToNumber(ByRef pStrHex)
HexToNumber = CLng("&h" & pStrHex)
End Function
End Class
%>
test.asp
<!--#INCLUDE FILE="RSA.asp"-->
<%
function Encryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA
LngKeyE = "32823"
LngKeyD = "20643"
LngKeyN = "29893"
StrMessage = Message
Set ObjRSA = New clsRSA
ObjRSA.PublicKey = LngKeyE
ObjRSA.Modulus = LngKeyN
Encryptstr = ObjRSA.Encode(StrMessage)
Set ObjRSA = Nothing
end function
function decryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA
LngKeyE = "32823"
LngKeyD = "20643"
LngKeyN = "29893"
StrMessage = Message
Set ObjRSA = New clsRSA
ObjRSA.PrivateKey =LngKeyD
ObjRSA.Modulus=LngKeyN
decryptstr=ObjRSA.Decode(StrMessage)
Set ObjRSA = Nothing
end function
dim last,first
first="sohu"
Response.Write "加密前为:"&first
last=Encryptstr(first)
Response.Write "加密后为"&last
Response.Write "解密后为" &decryptstr(last)
%>
一段在asp中加密与解密对应的函数
如何用asp进行base64加密
<%
OPTION EXPLICIT
const BASE_64_MAP_INIT =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
dim nl
’ zero based arrays
dim Base64EncMap(63)
dim Base64DecMap(127)
’ must be called before using anything else
PUBLIC SUB initCodecs()
’ init vars
nl = "<P>" & chr(13) & chr(10)
’ setup base 64
dim max, idx
max = len(BASE_64_MAP_INIT)
for idx = 0 to max - 1
’ one based string
Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
next
for idx = 0 to max - 1
Base64DecMap(ASC(Base64EncMap(idx))) = idx
next
END SUB
’ encode base 64 encoded string
PUBLIC FUNCTION base64Encode(plain)
if len(plain) = 0 then
base64Encode = ""
exit function
end if
dim ret, ndx, by3, first, second, third
by3 = (len(plain) \ 3) * 3
ndx = 1
do while ndx <= by3
first = asc(mid(plain, ndx+0, 1))
second = asc(mid(plain, ndx+1, 1))
third = asc(mid(plain, ndx+2, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16)
AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64)
AND 3 ) )
ret = ret & Base64EncMap( third AND 63)
ndx = ndx + 3
loop
’ check for stragglers
if by3 < len(plain) then
first = asc(mid(plain, ndx+0, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
if (len(plain) MOD 3 ) = 2 then
second = asc(mid(plain, ndx+1, 1))
ret = ret & Base64EncMap( ((first * 16) AND 48) +
((second 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) )
else
ret = ret & Base64EncMap( (first * 16) AND 48)
ret = ret & "="
end if
ret = ret & "="
end if
base64Encode = ret
END FUNCTION
’ decode base 64 encoded string
PUBLIC FUNCTION base64Decode(scrambled)
if len(scrambled) = 0 then
base64Decode = ""
exit function
end if
’ ignore padding
dim realLen
realLen = len(scrambled)
do while mid(scrambled, realLen, 1) = "="
realLen = realLen - 1
loop
dim ret, ndx, by4, first, second, third, fourth
ret = ""
by4 = (realLen \ 4) * 4
ndx = 1
do while ndx <= by4
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
third = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3)
)
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND
15) )
ret = ret & chr( ((third * 64) AND 255) + (fourth AND 63) )
ndx = ndx + 4
loop
&nb, sp; ’ check for stragglers, will be 2 or 3 characters
if ndx < realLen then
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3)
)
if realLen MOD 4 = 3 then
third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND
15) )
end if
end if
base64Decode = ret
END FUNCTION
’ initialize
call initCodecs
’ Testing code
’ dim inp, encode
’ inp = request.QueryString("input")
’ encode = base64Encode(inp)
’ response.write "Encoded value = " & encode & nl
’ response.write "Decoded value = " & base64Decode(encode) & nl
%>
用asp写个简单的加密和解密的类
http://www.pconline.com.cn/pcedu/empolder/wz/asp/0412/509728.html
用asp写个简单的加密和解密的类,在这个类中简单的实现了一个加密和解密。目的是和大家分享一下。这个类的破解非常简单。看看我的注释就知道是怎么回事了。下次编写一个java的加密和解密的类。
class Base64Class
rem Const
dim sBASE_64_CHARACTERS’转化码
dim lenString ’计算字符串的长度
dim iCount ’计数器
dim returnvalue ’返回值
dim tempChar’缓存字符
dim tempString’缓存字符串
dim paramString ’参数字符串
dim temHex’缓存缓存十六进制
dim tempLow’缓存低位
dim tempHigh’缓存高位
dim mod3String’
dim mod4String’
dim tempBinary’
dim tempByteOne’
dim tempByteTwo’
dim tempByteThree’
dim tempByteFour’
dim tempSaveBitsOne’
dim tempSaveBitsTwo’
’********************************************
’begin初始化类
’********************************************
private sub Class_Initialize()
sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" end sub
’********************************************
’end初始化类 ’
********************************************
’********************************************
’begin销毁类
’********************************************
Private Sub Class_Terminate()
sBASE_64_CHARACTERS="" end sub
’********************************************
’end销毁类
’********************************************
’********************************************
’begin将Ansi编码的字符串进行Base64编码
’********************************************
public function Encode(paramString)
tempString=""
returnvalue=""
lenString=len(paramString)
if lenString<1 then
Encode=returnvalue
else
mod3String=lenString mod 3
’补足位数是为了便于计算
if mod3String>0 then
lenString=lenString+3-mod3String
lenString=lenString-3
end if
’*************************begin
for iCount=1 to lenString step 3
tempBinary = Mid(paramString, iCount, 3)
’response.write tempBinary
tempByteOne= Asc(Mid(tempBinary, 1, 1)): tempSaveBitsOne = tempByteOne And 3
tempByteTwo = Asc(Mid(tempBinary, 2, 1)): tempSaveBitsTwo = tempByteTwo And 15
tempChar = Asc(Mid(tempBinary, 3, 1))
tempByteOne = Mid(sBASE_64_CHARACTERS, ((tempByteOne And 252) \ 4) + 1, 1)
tempByteTwo = Mid(sBASE_64_CHARACTERS, (((tempByteTwo And 240) \ 16) Or (tempSaveBitsOne * 16) And &HFF) + 1, 1)
tempByteThree = Mid(sBASE_64_CHARACTERS, (((tempChar And 192) \ 64) Or (tempSaveBitsTwo * 4) And &HFF) + 1, 1)
tempByteFour = Mid(sBASE_64_CHARACTERS, (tempChar And 63) + 1, 1)
tempString = tempByteOne & tempByteTwo & tempByteThree & tempByteFour returnvalue=returnvalue & tempString next
’*************************end
’*************************begin处理最后剩余的几个字符
if mod3String>0 then
tempBinary = Mid(paramString, iCount, mod3String)
if mod3String=1 then
tempString = tempBinary & Chr(64) & Chr(64) & Chr(64) ’用@号补足位数
else tempString = tempBinary & Chr(64) & Chr(64) ’用@号补足位数
end if
returnvalue=returnvalue & tempString
end if
’*************************end处理最后剩余的几个字符
Encode=returnvalue end if end function
’********************************************
’end将Ansi编码的字符串进行Base64编码
’********************************************
’********************************************
’end将Base64编码字符串转换成Ansi编码的字符串
’********************************************
public function Decode(paramString)
tempString=""
returnvalue=""
lenString=len(paramString)
if lenString<1 then
Decode=returnvalue
else
mod4String=lenString mod 4
if mod4String >0 then ’字符串长度应当是4的倍数
Decode=returnvalue
else ’begin判断是不是@号
if Mid(paramString, lenString-1, 1) = "@" then
mod4String=2
end if
if Mid(paramString, lenString-2, 1) = "@" then
mod4String=1
end if
’end判断是不是@号
if mod4String>0 then
lenString=lenString-4
end if
’******************************begin
for iCount=1 to lenString step 4
tempString = Mid(paramString, iCount, 4)
tempByteOne = InStr(sBASE_64_CHARACTERS, Mid(tempString, 1, 1)) - 1
tempByteTwo = InStr(sBASE_64_CHARACTERS, Mid(tempString, 2, 1)) - 1
tempByteThree = InStr(sBASE_64_CHARACTERS, Mid(tempString, 3, 1)) - 1
tempByteFour = InStr(sBASE_64_CHARACTERS, Mid(tempString, 4, 1)) - 1
tempByteOne = Chr(((tempByteTwo And 48) \ 16) Or (tempByteOne * 4) And &HFF) tempByteTwo = "" & Chr(((tempByteThree And 60) \ 4) Or (tempByteTwo * 16) And &HFF)
tempByteThree = Chr((((tempByteThree And 3) * 64) And &HFF) Or (tempByteFour And 63))
tempString=tempByteOne & tempByteTwo & tempByteThree
returnvalue=returnvalue & tempString
next
’******************************end
’处理最后剩余的几个字符
if mod4String > 0 then
tempString=left(right(paramString,4),mod4String)
returnvalue = returnvalue & tempString
end if
Decode=returnvalue
end if
end if
end function
’********************************************
’end将Base64编码字符串转换成Ansi编码的字符串
’********************************************
end class
ASP中时间函数的使用(一)
副标题:
作者:佚名 文章来源:本站原创 点击数:313 更新时间:2004-9-16
Date 函数
描述:返回当前系统日期。
语法:Date
DateAdd 函数
描述:返回已添加指定时间间隔的日期。
语法:DateAdd(interval, number, date)
interval: 必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number: 必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date: 必选。Variant 或要添加 interval 的表示日期的文字。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
说明:可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。
DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:
NewDate = DateAdd("m", 1, "31-Jan-95")
在这个例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。
如果计算的日期是在公元 100 年之前则会产生错误。
如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。
DateDiff 函数
描述:返回两个日期之间的时间间隔。
语法:DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)
interval: 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2: 必选。日期表达式。用于计算的两个日期。
firstdayofweek: 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。
说明:DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。
如果 date1 晚于 date2,则 DateDiff 函数返回负数。
firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。
DatePart 函数
描述:返回给定日期的指定部分。
语法:DatePart(interval, date[, firstdayofweek[, firstweekofyear>)
DatePart: 函数的语法有以下参数:
interval: 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。
date: 必选。要计算的日期表达式。
firstdayof week: 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。
说明:DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。
firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。
如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
ASP中时间函数的使用(二)
副标题:
作者:佚名 文章来源:本站原创 点击数:232 更新时间:2004-9-16
DateSerial 函数
描述:对于指定的年、月、日,返回 Date 子类型的 Variant。
语法:DateSerial(year, month, day)
year: 从 100 到 9999 之间的数字或数值表达式。
month: 任意数值表达式。
day: 任意数值表达式。
说明:要指定日期,如 1991 年 12 月 31 日,DateSerial 函数中每个参数的取值范围都应该是可接受的;即日的取值应在 1 和 31 之间,月的取值应在 1 和 12 之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。
以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。
DateSerial(1990 - 10, 8 - 2, 1 - 1)
对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则使用四位数字表示年份(例如 1800 年)。
当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。
Datevalue 函数
描述:返回 Date 子类型的 Variant。
语法:Datevalue(date)
date 参数应是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日中的一个日期。但是,date 也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。
说明:如果 date 参数包含时间信息,则 Datevalue 不会返回时间信息。但是如果 date 包含无效的时间信息(如 "89:98"),就会出现错误。
如果 date 是某一字符串,其中仅包含由有效的日期分隔符分隔开的数字,则 Datevalue 将会根据为系统指定的短日期格式识别月、日和年的顺序。Datevalue 还会识别包含月份名称(无论是全名还是缩写)的明确日期。例如,除了能够识别 12/30/1991 和 12/30/91 之外,Datevalue 还能识别 December 30, 1991 和 Dec 30, 1991。
如果省略了 date 的年份部分,Datevalue 将使用计算机系统日期中的当前年份。
Day 函数
描述:返回 1 到 31 之间的一个整数(包括 1 和31),代表某月中的一天。
语法:Day(date)
date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。
FormatDateTime 函数
描述:返回表达式,此表达式已被格式化为日期或时间。
语法:FormatDateTime(Date[,NamedFormat])
Date: 必选。要被格式化的日期表达式。
NamedFormat: 可选。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。
NamedFormat 参数可以有以下值:
(以下分别为:常数 值 描述)
vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。
vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。
vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。
vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。
vbShortTime 4 使用 24 小时格式 (hh:mm) 显示时间。
Hour 函数
描述:返回 0 到 23 之间的一个整数(包括 0 和 23),代表一天中的某一小时。
语法:Hour(time)
time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。
Minute 函数
描述:返回 0 到 59 之间的一个整数(包括 0 和59),代表一小时内的某一分钟。
语法:Minute(time)
time 参数是任意可以代表时间的表达式。如果 time 参数包含 Null,则返回 Null。
Month 函数
描述:返回 1 到 12 之间的一个整数(包括 1 和 12),代表一年中的某月。
语法:Month(date)
date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。
ASP中时间函数的使用(三)
副标题:
作者:佚名 文章来源:本站原创 点击数:150 更新时间:2004-9-16
MonthName 函数
描述:返回表明指定月份的字符串。
语法:MonthName(month[, abbreviate])
month: 必选。月份的数值定义。例如,一月是 1,二月是 2,以此类推。
abbreviate: 可选。Boolean 值,表明月份名称是否简写。如果省略,默认值为 False,即不简写月份名称。
Now 函数
描述:根据计算机系统设定的日期和时间返回当前的日期和时间值。
语法:Now
Second 函数
描述:返回 0 到 59 之间的一个整数(包括 1 和 59),代表一分钟内的某一秒。
语法:Second(time)
time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。
Time 函数
描述:返回 Date 子类型 Variant,指示当前系统时间。
语法:Time
TimeSerial 函数
描述:返回一个 Date 子类型的 Variant,含有指定时、分、秒的时间。
语法:TimeSerial(hour, minute, second)
hour: 其值为从 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的数值或数值表达式。
minute: 任意数值表达式。
second: 任意数值表达式。
说明:要指定一时刻,如 11:59:59,TimeSerial 的参数取值应在可接受的范围内;也就是说,小时应介于 0-23 之间,分和秒应介于 0-59 之间。但是,可以使用数值表达式为每个参数指定相对时间,这一表达式代表某时刻之前或之后的时、分或秒数。以下样例中使用了表达式代替绝对时间数。TimeSerial 函数返回中午之前六小时 (12 - 6) 十五分钟的时间 (-15),即 5:45:00 A.M.。
TimeSerial(12 - 6, -15, 0)
当任何一个参数的取值超出可接受的范围时,它会正确地进位到下一个较大的时间单位中。例如,如果指定了 75 分钟,则这个时间被解释成一小时十五分钟。但是,如果任何一个参数值超出 -32768 到 32767 的范围,就会导致错误。如果使用三个参数直接指定的时间或通过表达式计算出的时间超出可接受的日期范围,也会导致错误。
Timevalue 函数
描述:返回包含时间的 Date 子类型的 Variant。
语法:Timevalue(time)
time 参数通常是代表从 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字符串表达式(包括 0:00:00 和 23:59:59)。不过,time 也可以是代表该范围内任何时间的表达式。如果 time 参数包含 Null,则返回 Null。
说明:可以采用 12 或 24 小时时钟格式输入时间。例如 "2:24PM" 和 "14:24" 都是有效的 time 参数。
如果 time 参数包含日期信息, Timevalue 函数并不返回日期信息。然而,如果 time 参数包含无效的日期信息,则会出现错误。
Weekday 函数
描述:返回代表一星期中某天的整数。
语法:Weekday(date, [firstdayofweek])
date: 可以代表日期的任意表达式。如果 date 参数中包含 Null,则返回 Null。
firstdayofweek: 指定星期中第一天的常数。如果省略,默认使用 vbSunday。
firstdayofweek 参数有如下设置:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
Weekday 函数返回如下值:
(以下分别为:常数 值 描述)
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
WeekdayName 函数
描述:返回一个字符串,表示星期中指定的某一天。
语法:WeekDayName(weekday, abbreviate, firstdayofweek)
weekday: 必选。星期中某天的数值定义。各天的数值定义取决于 firstdayofweek 参数设置。
abbreviate: 可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省略, 默认值为 False,即不缩写星期各天的名称。
firstdayofweek: 可选。指明星期第一天的数值。关于数值,请参阅“设置”部分。
firstdayofweek 参数有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
Year 函数
描述:返回一个代表某年的整数。
语法:Year(date)
date 参数是任意可以代表日期的参数。如果 date 参数中包含 Null,则返回 Null。
让我们了解IE的按钮
副标题:
作者:admin 文章来源:本站原创 点击数:89 更新时间:2004-9-11
&nbs, p;
ie按钮
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0>
</OBJECT>
<input onclick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开 name=Button1>
<input onclick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为 name=Button2>
<input onclick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性 name=Button3>
<input onclick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印 name=Button>
<input onclick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置 name=Button4>
<br>
<input onclick=window.location.reload() type=button value=刷新 name=refresh>
<input onclick="window.external.ImportExportFavorites(true,’’);" type=button value=导入收藏夹 name=Button5>
<input onclick="window.external.ImportExportFavorites(false,’’);" type=button value=导出收藏夹 name=Button32>
<input onclick="window.external.AddFavorite(location.href, document.title)" type=button value=加入收藏夹 name=Button22>
<br>
<input onclick="window.external.ShowBrowserUI(’OrganizeFavorites’, null)" type=button value=整理收藏夹 name=Submit2>
<input onclick=’window.location="view-source:" + window.location.href’ type=button value=查看源文件 name=Button7>
<input onclick="window.external.ShowBrowserUI(’LanguageDialog’, null)" type=button value=语言设置 name=Button6>
<input onclick=history.go(1) type=submit value=前进 name=Submit>
<input onclick=history.go(-1) type=submit value=后退 name=Submit2>
要完成此效果把如下代码加入到<body>区域中
<input type="button" name="Button" value="点击保存页面" onClick="document.all.WebBrowser.ExecWB(4,1)">
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
………………………………………………………………………………………………………………………………
鼠标自定义
<script language=javascript>var Loaded=false;var Flag=false;</script>
<script src=’ http://files.cometsystems.com/javascript/lc2000.js’
language=javascript></script>
<script language=javascript>if(Loaded&&Flag)TheCometCursor(’cd_electric’,0,626);</script>
要完成此效果把如下代码加入到<head>区域中
<SCRIPT LANGUAGE="javascript">
<!-- Begin
var x, y, xold, yold, xdiff, ydiff;
var dir = Array();
dir[0] = "n-resize";
dir[1]="ne-resize";
dir[2]="e-resize";
dir[3]="se-resize";
dir[4] = "s-resize";
dir[5]="sw-resize";
dir[6]="w-resize";
dir[7]="nw-resize";
document.onmousemove = FindXY;
function display(direction) {
document.body.style.cursor = dir[direction];
}
function FindXY(loc) {
x = (document.layers) ? loc.pageX : event.clientX;
y = (document.layers) ? loc.pageY : event.clientY;
xdiff = x - xold;
ydiff = y - yold
if ((xdiff < 2) && (ydiff < -2)) display(0);
if ((xdiff < 2) && (ydiff > 2)) display(4);
if ((xdiff > 2) && (ydiff < 2)) display(2);
if ((xdiff < -2) && (ydiff < 2)) display(6);
if ((xdiff > 2) && (ydiff > 2)) display(3);
if ((xdiff > 2) && (ydiff < -2)) display(1);
if ((xdiff < -2) && (ydiff > 2)) display(5);
if ((xdiff < -2) && (ydiff < -2)) display(7);
xold = x;
yold = y;
}
// End -->
</script>
从一个Blog中分离出来的好代码 [ 日期:2005-06-07 ] [ 来自: ]/**********************************************************************
*
* 从一个Blog中分离出来的好代码
*
* 如果需要更多代码,请到:http://www.relaxlife.net 感觉好帮我顶!
*
*
*
*********************************************************************/
<%
’//----------日期转换成字符串函数
Function DateToStr(DateTime,ShowType)
Dim DateMonth,DateDay,DateHour,DateMinute
DateMonth=Month(DateTime)
DateDay=Day(DateTime)
DateHour=Hour(DateTime)
DateMinute=Minute(DateTime)
If Len(DateMonth)<2 Then DateMonth="0"&DateMonth
If Len(DateDay)<2 Then DateDay="0"&DateDay
Select Case ShowType
Case "Y-m-d"
DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay
Case "Y-m-d H:I A"
Dim DateAMPM
If DateHour>12 Then
DateHour=DateHour-12
DateAMPM="PM"
Else
DateHour=DateHour
DateAMPM="AM"
End If
If Len(DateHour)<2 Then DateHour="0"&DateHour
If Len(DateMinute)<2 Then DateMinute="0"&DateMinute
DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay&" "&DateHour&":"&DateMinute&" "&DateAMPM
Case "Y-m-d H:I:S"
Dim DateSecond
DateSecond=Second(DateTime)
If Len(DateHour)<2 Then DateHour="0"&DateHour
If Len(DateMinute)<2 Then DateMinute="0"&DateMinute
If Len(DateSecond)<2 Then DateSecond="0"&DateSecond
DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay&" "&DateHour&":"&DateMinute&":"&DateSecond
Case "YmdHIS"
DateSecond=Second(DateTime)
If Len(DateHour)<2 Then DateHour="0"&DateHour
If Len(DateMinute)<2 Then DateMinute="0"&DateMinute
If Len(DateSecond)<2 Then DateSecond="0"&DateSecond
DateToStr=Year(DateTime)&DateMonth&DateDay&DateHour&DateMinute&DateSecond
Case "ym"
DateToStr=Right(Year(DateTime),2)&DateMonth
Case "d"
DateToStr=DateDay
Case Else
If Len(DateHour)<2 Then DateHour="0"&DateHour
If Len(DateMinute)<2 Then DateMinute="0"&DateMinute
DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay&" "&DateHour&":"&DateMinute
End Select
End Function
’//--------------截取字符串中有前N个字符。
Function CutStr(byVal Str,byVal StrLen)
Dim l,t,c,i
l=Len(str)
t=0
For i=1 To l
c=AscW(Mid(str,i,1))
If c<0 Or c>255 Then t=t+2 Else t=t+1
IF t>=StrLen Then
CutStr=left(Str,i)&"..."
Exit For
Else
CutStr=Str
End If
Next
End Function
’//--------------随机产生N个字符。
Function Generator(Length)
Dim i, tempS
tempS = "abcdefghijklmnopqrstuvwxyz1234567890"
Generator = ""
If isNumeric(Length) = False Then
Exit Function
End If
For i = 1 to Length
Randomize
Generator = Generator & Mid(tempS,Int((Len(tempS) * Rnd) + 1),1)
Next
End Function
’//-------------过滤无效字符
Function CheckStr(byVal ChkStr)
Dim Str:Str=ChkStr
Str=Trim(Str)
If IsNull(Str) Then
CheckStr = ""
Exit Function
End If
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="(\r\n){3,}"
Str=re.Replace(Str,"$1$1$1")
Set re=Nothing
Str = Replace(Str,"’","’’")
Str = Replace(Str, "select", "sele;ct")
Str = Replace(Str, "join", "joi;n")
Str = Replace(Str, "union", "uni;on")
Str = Replace(Str, "where", "whe;re")
Str = Replace(Str, "insert", "inse;rt")
Str = Replace(Str, "delete", "dele;te")
Str = Replace(Str, "update", "upd;ate")
Str = Replace(Str, "like", "like;")
Str = Replace(Str, "drop", "drop;")
Str = Replace(Str, "create", "cre;ate")
Str = Replace(Str, "modify", "modi;fy")
Str = Replace(Str, "rename", "rena;me")
Str = Replace(Str, "alter", "alte;r")
Str = Replace(Str, "cast", "cas;t")
CheckStr=Str
End Function
’//-------------反过滤无效字符
Function UnCheckStr(Str)
Str = Replace(Str, "sele;ct", "select")
Str = Replace(Str, "joi;n", "join")
Str = Replace(Str, "uni;on", "union")
Str = Replace(Str, "whe;re", "where")
Str = Replace(Str, "inse;rt", "insert")
Str = Replace(Str, "dele;te", "delete")
Str = Replace(Str, "upd;ate", "update")
Str = Replace(Str, "like;", "like")
Str = Replace(Str, "drop;", "drop")
Str = Replace(Str, "cre;ate", "create")
Str = Replace(Str, "modi;fy", "modify")
Str = Replace(Str, "rena;me", "rename")
Str = Replace(Str, "alte;r", "alter")
Str = Replace(Str, "cas;t", "cast")
UnCheckStr=Str
End Function
’//-----------------------转换HTML代码
Function HTMLEncode(reString)
Dim Str:Str=reString
If Not IsNull(Str) Then
Str = UnCheckStr(Str)
Str = Replace(Str, "&", "&;")
Str = Replace(Str, ">", ">;")
Str = Replace(Str, "<", "<;")
Str = Replace(Str, CHR(32), " ;")
Str = Replace(Str, CHR(9), " ; ; ; ;")
Str = Replace(Str, CHR(9), " ; ; ; ;")
Str = Replace(Str, CHR(34),"";")
Str = Replace(Str, CHR(39),"’;")
Str = Replace(Str, CHR(13), "")
Str = Replace(Str, CHR(10), "<br>")
HTMLEncode = Str
End If
End Function
’//---------------------------切割前行内容
Function SplitLines(byVal Content,byVal ContentNums)
Dim ts,i,l
If IsNull(Content) Then Exit Function
i=1
ts = 0
For i=1 to Len(Content)
l=Mid(Content,i,4)
If l="<br>" Then
ts=ts+1
End If
If ts>ContentNums Then Exit For
Next
If ts>ContentNums Then
Content=Left(Content,i-1)
End If
SplitLines=Content
End Function
’//---------------------------返回时间差(秒)
Function GetEndTimeNum(StartTime)
GetEndTimeNum = FormatNumber(Timer()-StartTime,6,-1)
End Function
’//------------------------删除文件
Function DeleteFiles(FilePath)
Dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
If Err<>0 Then
Err.Clear
Response.Write("服务器关闭FSO,无法删除文件")
Else
If FSO.FileExists(FilePath) Then
FSO.DeleteFile FilePath,True
DeleteFiles = 1
Else
DeleteFiles = 0
End If
End If
Set FSO = Nothing
End Function
’//-----------------------查看占用空间
Function GetTotalSize(GetLocal,GetType)
Dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
If Err<>0 Then
Err.Clear
GetTotalSize="服务器关闭FSO,查看占用空间失败"
Else
Dim SiteFolder
If GetType="Folder" Then
Set SiteFolder=FSO.GetFolder(GetLocal)
Else
Set SiteFolder=FSO.GetFile(GetLocal)
End If
GetTotalSize=SiteFolder.Size
If GetTotalSize>1024*1024 Then
GetTotalSize=GetTotalSize/1024/1024
If inStr(GetTotalSize,".") Then GetTotalSize = Left(GetTotalSize,inStr(GetTotalSize,".")+2)
GetTotalSize=GetTotalSize&" MB"
Else
GetTotalSize=Fix(GetTotalSize/1024)&" KB"
 , ; End If
Set SiteFolder=Nothing
End If
Set FSO=Nothing
End Function
’//----------------------------复制文件
Function CopyFiles(TempSource,TempEnd)
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If Err<>0 Then
Err.Clear
Response.Write("服务器关闭FSO,无法复制文件")
Else
If FSO.FileExists(TempEnd) then
Response.Write "目标备份文件 <b>" & TempEnd & "</b> 已存在,请先删除!"
Set FSO=Nothing
Exit Function
End If
If FSO.FileExists(TempSource) Then
Else
Response.Write "要复制的源数据库文件 <b>"&TempSource&"</b> 不存在!"
Set FSO=Nothing
Exit Function
End If
FSO.CopyFile TempSource,TempEnd
Response.Write "已经成功复制文件 <b>"&TempSource&"</b> 到 <b>"&TempEnd&"</b>"
End If
Set FSO = Nothing
End Function
’-------------------------------------------------------True/False-------------------------------------
’//----------------检测是否有效的E-mail地址
Function IsValidEmail(Email)
Dim names, name, i, c
IsValidEmail = True
Names = Split(email, "@")
If UBound(names) <> 1 Then
IsValidEmail = False
Exit Function
End If
For Each name IN names
If Len(name) <= 0 Then
IsValidEmail = False
Exit Function
End If
For i = 1 to Len(name)
c = Lcase(Mid(name, i, 1))
If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 And Not IsNumeric(c) Then
IsValidEmail = false
Exit Function
End If
Next
If Left(name, 1) = "." or Right(name, 1) = "." Then
IsValidEmail = false
Exit Function
End If
Next
If InStr(names(1), ".") <= 0 Then
IsValidEmail = False
Exit Function
End If
i = Len(names(1)) - InStrRev(names(1), ".")
If i <> 2 And i <> 3 Then
IsValidEmail = False
Exit Function
End If
If InStr(email, "..") > 0 Then
IsValidEmail = False
End If
End Function
’//----------------检测是否开通组件
’FileUp上传组件:<%=CheckObjInstalled("FileUp.upload")
’FSO文本读写:<%=CheckObjInstalled("Scripting.FileSystemObject")
’数据库使用:<%=CheckObjInstalled("adodb.connection")
’Jmail组件支持:<%=CheckObjInstalled("JMail.SMTPMail")
’GflSDK组件支持:<%=CheckObjInstalled("GflAx190.GflAx")
’EasyMail邮件支持:<%=CheckObjInstalled("easymail.Mailsend")
’无组件上传-ADODB.Stream:<%=CheckObjInstalled("Scripting.Dictionary")
’无组件上传-Scripting.Dictionary :<%=CheckObjInstalled("Scripting.Dictionary")
Function CheckObjInstalled(strClassString)
On Error Resume Next
Dim TmpObj
Set TmpObj = Server.CreateObject(strClassString)
If Err = 0 OR Err = -2147221477 Then
CheckObjInstalled= "<font color=""#00FF00""><b>√</b></font>"
ElseIF Err = 1 OR Err = -2147221005 Then
CheckObjInstalled="<font color=""#FF0000""><b>×</b></font>"
End If
Err.Clear
Set TmpObj = Nothing
End Function
’//----------------检测用户名是否是有效的字符
Function IsValidUserName(byVal UserName)
Dim i,c
IsValidUserName = True
For i = 1 To Len(UserName)
c = Lcase(Mid(UserName, i, 1))
IF InStr("$!<>?#^%@~`&*(){};:+=’"" ", c) > 0 Then
IsValidUserName = False
Exit Function
End IF
Next
End Function
’//------------检测是否有效的数字
Function IsInteger(Para)
IsInteger=False
If Not (IsNull(Para) Or Trim(Para)="" Or Not IsNumeric(Para)) Then
IsInteger=True
End If
End Function
’限制上传文件类型
UP_FileType = "RAR,ZIP,SWF,JPG,PNG,GIF,DOC,TXT,CHM,PDF,ACE,JPG,MP3,WMA,WMV,MIDI,AVI,RM,RA,RMVB,MOV,TORRENT"
Function IsvalidFile(File_Type)
IsvalidFile = False
Dim GName
For Each GName in UP_FileType
If File_Type = GName Then
IsvalidFile = True
Exit For
End If
Next
End Function
’---------------------------------------------------------------------------------------------------
’//-------------------本页里关闭Conn对象,放在最后一行写。
IF TypeName(Conn)<>"Nothing" Then
Conn.Close
Set Conn=Nothing
End IF
’//--------------------------设置Cookie
Const CookieName="Relaxlife"
Response.Cookies(CookieName)("memName")=memLogin("mem_Name")
Response.Cookies(CookieName)("memPassword")=memLogin("mem_Password")
Response.Cookies(CookieName)("memStatus")=memLogin("mem_Status")
Select Case Request.Form("CookieTime")
Case 1
Response.Cookies(CookieName).Expires=Date+1’保存一天
Case 2
Response.Cookies(CookieName).Expires=Date+31’保存一月
Case 3
Response.Cookies(CookieName).Expires=Date+365’保存一年
End Select
’//--------------------------取Cookie值
memName=CheckStr(Request.Cookies(CookieName)("memName"))
memPassword=CheckStr(Request.Cookies(CookieName)("memPassword"))
memStatus=CheckStr(Request.Cookies(CookieName)("memStatus"))
’//----------------------------3秒后自动返回
msg_Content="<a href=’blogview.asp?logID="&blog_ID&"’>评论发表成功,点击返回,或者3秒后自动返回</a><meta http-equiv=’refresh’ content=’3;url=blogview.asp?logID="&blog_ID&"’>"
’//-----------------------------------
Reg_Title="错误信息"
Reg_Message="密码长度不符合<br><a href=’javascript:history.go(-1);’>请返回重新输入</a>"
%>
<table width="95%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#CCCCCC">
<tr><td height="24" align="center"><strong><%=Reg_Title%></strong></td></tr>
<tr><td height="88" align="center" valign="middle" bgcolor="#FFFFFF"><%=Reg_Message%></td></tr>
</table>
<%
’//--------------------------Application的应用
’写入表情符号
Dim Arr_Smilies
IF Not IsArray(Application(CookieName&"_blog_Smilies")) Then
Dim log_SmiliesList
Set log_SmiliesList=Server.CreateObject("ADODB.RecordSet")
SQL="SELECT sm_ID,sm_Image,sm_Text FROM blog_Smilies ORDER BY sm_ID ASC"
log_SmiliesList.Open SQL,Conn,1,1
SQLQueryNums=SQLQueryNums+1
If log_SmiliesList.EOF And log_SmiliesList.BOF Then
Redim Arr_Smilies(3,0)
Else
Arr_Smilies=log_SmiliesList.GetRows
End If
log_SmiliesList.Close
Set log_SmiliesList=Nothing
Application.Lock
Application(CookieName&"_blog_Smilies")=Arr_Smilies
Application.UnLock
Else
Arr_Smilies=Application(CookieName&"_blog_Smilies")
End IF
’//------------------------
If Request.QueryString("type")="EnableSite" Then
Application.Lock()
Application(CookieName & "_SiteEnable") = 1
Application(CookieName & "_SiteDisbleWhy") = ""
Application.UnLock()
Response.Write("<a href=""admincp.asp?action=setting"">开启站点成功,请点击返回</a>")
ElseIF Request.QueryString("type")="DisableSite" Then
Set Conn=Nothing
FreeApplicationMemory
Application.Lock()
Application(CookieName & "_SiteEnable") = 0
Application(CookieName & "_SiteDisbleWhy")="站点维护中,请稍候再来..."
Application.UnLock()
Response.Write("<br><a href=""admincp.asp?action=setting"">关闭站点成功</a>")
Else
If Application(CookieName & "_SiteEnable") = 0 AND Application(CookieName & "_SiteDisbleWhy")<>"" Then
Response.Write("<b>站点已关闭</b> ; ; ; ;| ; ; ; ;<a href=""admincp.asp?action=setting&type=EnableSite"">点击开启站点</a>")
Else
Response.Write("<b>站点已开启</b> ; ; ; ;| ; ; ; ;<a href=""admincp.asp?action=setting&type=DisableSite"">点击关闭站点</a>")
End If
End If
’//-----------------------------------释放网站数据列表
Function FreeApplicationMemory
Response.Write "<b>释放网站数据列表:</b>" & VbCrLf
Dim Thing
For Each Thing IN Application.Contents
If Left(Thing,Len(CookieName)) = CookieName Then
Response.Write "<font color=""gray"">" & thing & "</font><br>"
If isObject(Application.Contents(Thing)) Then
Application.Contents(Thing).Close
Set Application.Contents(Thing) = Nothing
Application.Contents(Thing) = Null
Response.Write "成功关闭对象"
ElseIF isArray(Application.Contents(Thing)) Then
Set Application.Contents(Thing) = Nothing
Application.Contents(Thing) = Null
Response.Write "成功释放数组"
Else
Response.Write(HtmlEncode(Application.Contents(Thing)))
Application.Contents(Thing) = Null
End If
Response.Write(" ; ;")
End If
Next
End Function
’//-----------------------
’定义数据库链接文件,根据自己的情况修改
Const AccessPath="blogdata"
Const AccessFile="loveyuki.asa"
Const IPAccessFile="ipdata.asa"
’------------定义数据库连接
Dim Conn
On Error Resume Next
Set Conn= Server.CreateObject("ADODB.Connection")
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessPath&"/"&AccessFile)
Conn.Open
If Err Then
Err.Clear
Set Conn = Nothing
Response.Write("<head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><title>数据库连接出错,请检查连接字串</title></head><body><div align=""center"" style=""width:400px;height:100px;padding: 8px;font-size:9pt;border: 1px solid ThreeDShadow;POSITION:absolute;top:expression((document.body.offsetHeight-100)/2);left:expression((document.body.offsetWidth-400)/2);""><table width=""100%"" height=""100%"" style=""font-size:12px;font-family:Tahoma;""><tr><td align=""center""><strong>数据库连接出错,请检查连接字串</strong></td></tr></table></div></body>")
Response.End
End If
’------------压缩数据库
Dim FSO,Engine
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
If Err<>0 Then
Err.Clear
Response.Write("服务器关闭FSO,无法压缩数据库")
Else
If FSO.FileExists(Server.Mappath(AccessPath&"/"&AccessFile)) Then
Response.Write "压缩数据库开始,网站暂停一切用户的前台操作......<br>"
Conn.Close
Set Conn=Nothing
Application.Lock
FreeApplicationMemory
Application(CookieName & "_SiteEnable") = 0
Application(CookieName & "_SiteDisbleWhy") = "网站暂停中,请稍候几分钟后再来..."
Application.UnLock
Set Engine = CreateObject("JRO.JetEngine")
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessPath&"/"&AccessFile), "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath(AccessPath&"/"&AccessFile&".temp")
FSO.CopyFile Server.Mappath(AccessPath&"/"&AccessFile&".temp"),Server.Mappath(AccessPath&"/"&AccessFile)
FSO.DeleteFile(Server.Mappath(AccessPath&"/"&AccessFile&".temp"))
Set FSO = Nothing
Set Engine = Nothing
Response.write "压缩数据库完成..."
Application.Lock
Application(CookieName & "_SiteEnable") = 1
Application(CookieName & "_SiteDisbleWhy") = ""
Application.UnLock
Response.Write "<br>网站恢复正常访问..."
Response.Write("<br><a href=""admincp.asp?action=database"">请点击返回</a>")
End If
End If
Set FSO=Nothing
’-----------------------备份数据库
Response.Write "备份数据库开始,网站暂停一切用户的前台操作......<br>"
Conn.Close
Set Conn=Nothing
Application.Lock
Application(CookieName & "_SiteEnable") = 0
application(CookieName & "_SiteDisbleWhy") = "网站暂停中,请稍候几分钟后再来..."
Application.UnLock
CopyFiles Server.Mappath(AccessPath&"/"&AccessFile),Server.Mappath(AccessPath&"/"&AccessFile & "_" & DateToStr(Now(),"YmdHIS") &".BAK")
Response.write "<br>备份完成..."
Application.Lock
Application(CookieName & "_SiteEnable") = 1
Application(CookieName & "_SiteDisbleWhy") = ""
Application.UnLock
Response.write "<br>网站恢复正常访问..."
Response.Write("<br><a href=""admincp.asp?action=database"">请点击返回</a>")
’--------------删除的文件
If Request.QueryString("filename")=Empty Then
Response.Write("<a href=""admincp.asp?action=database"">要删除的文件名不能为空,请点击返回</a>")
Else
If DeleteFiles(Server.MapPath(AccessPath&"/"&Request.QueryString("filename")))=1 Then
Response.Write("<a href=""admincp.asp?action=database"">文件删除成功,请点击返回</a>")
Else
Response.Write("<a href=""admincp.asp?action=database"">文件删除失败,请点击返回</a>")
End If
End If
’------------------文件列表
Response.Write("<b>备份文件列表</b><br>")
Dim DataFolder,DataFileList,DataFile,DataFileName
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
If Err<>0 Then
Err.Clear
Response.Write("服务器关闭FSO,无法查看备份文件列表")
Else
Set DataFolder=FSO.GetFolder(Server.MapPath(AccessPath))
Set DataFileList=DataFolder.Files
For Each DataFile IN DataFileList
If Ubound(Split(DataFile,"."))>=2 Then
DataFileName=DataFile.Name
Response.Write("<font color=""#FF0000"">"&DataFileName&"</font> ; ;| ; ;<b><a href=""blogdata/"&DataFileName&""">下载此文件</a></b> ; ;| ; ;<b><a href=""admincp.asp?action=database&type=DeleFile&filename="&DataFileName&""">删除此文件</a></b> ; ;| ; ;<b><a href=""admincp.asp?action=database&type=Restore&filename="&DataFileName&""">从此文件还原数据</a></b><br>")
End If
Next
End If
Set FSO=Nothing
’------------------SQL语句执行
Dim SQL_Query
SQL_Query=Request.Form("SQL_Query")
Conn.ExeCute(SQL_Query)
SQLQueryNums=SQLQueryNums+1
Response.Write("<a href=""admincp.asp?action=database"">SQL语句执行成功,请点击返回</a>")
%>
引用通告地址 (0):
http://blog.chenoe.com/blog//trackback.asp?tbID=1797
http://blog.chenoe.com/blog//trackback.asp?tbID=1797&CP=GBK
base64编码、解码函数
http://www.3pcode.com/article/article_3/1858.htm
这是我看完几个base64编码、解码函数后自己改写的。
因为,在中文操作系统的VBscript中,使用的是unicode字符集,所以
很多base64编码、解码函数在理论上是正确的,但实际不能运行!
我加写了几个Unicode与Ansi编码转换的函数,现贴出来,请大家执教!
文件名称base64test.asp
<%
sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
sBASE_64_CHARACTERS = strUnicode2Ansi(sBASE_64_CHARACTERS)
Function strUnicodeLen(asContents)
’计算unicode字符串的Ansi编码的长度
asContents1="a"&asContents
len1=len(asContents1)
k=0
for i=1 to len1
asc1=asc(mid(asContents1,i,1))
if asc1<0 then asc1=65536+asc1
if asc1>255 then
k=k+2
else
k=k+1
end if
next
strUnicodeLen=k-1
End Function
Function strUnicode2Ansi(asContents)
’将Unicode编码的字符串,转换成Ansi编码的字符串
strUnicode2Ansi=""
len1=len(asContents)
for i=1 to len1
varchar=mid(asContents,i,1)
varasc=asc(varchar)
if , varasc<0 then varasc=varasc+65536
if varasc>255 then
varHex=Hex(varasc)
varlow=left(varHex,2)
varhigh=right(varHex,2)
strUnicode2Ansi=strUnicode2Ansi & chrb("&H" & varlow ) & chrb("&H" & varhigh )
else
strUnicode2Ansi=strUnicode2Ansi & chrb(varasc)
end if
next
End function
Function strAnsi2Unicode(asContents)
’将Ansi编码的字符串,转换成Unicode编码的字符串
strAnsi2Unicode = ""
len1=lenb(asContents)
if len1=0 then exit function
for i=1 to len1
varchar=midb(asContents,i,1)
varasc=ascb(varchar)
if varasc > 127 then
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
i=i+1
else
strAnsi2Unicode = strAnsi2Unicode & chr(varasc)
end if
next
End function
Function Base64encode(asContents)
’将Ansi编码的字符串进行Base64编码
’asContents应当是ANSI编码的字符串(二进制的字符串也可以)
Dim lnPosition
Dim lsResult
Dim Char1
Dim Char2
Dim Char3
Dim Char4
Dim Byte1
Dim Byte2
Dim Byte3
Dim SaveBits1
Dim SaveBits2
Dim lsGroupBinary
Dim lsGroup64
Dim m4,len1,len2
len1=Lenb(asContents)
if len1<1 then
Base64encode=""
exit Function
end if
m3=Len1 Mod 3
If M3 > 0 Then asContents = asContents & String(3-M3, chrb(0))
’补足位数是为了便于计算
IF m3 > 0 THEN
len1=len1+(3-m3)
len2=len1-3
else
len2=len1
end if
lsResult = ""
For lnPosition = 1 To len2 Step 3
lsGroup64 = ""
lsGroupBinary = Midb(asContents, lnPosition, 3)
Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3
Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15
Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1)
Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
Char4 = Midb(sBASE_64_CHARACTERS, (Byte3 And 63) + 1, 1)
lsGroup64 = Char1 & Char2 & Char3 & Char4
lsResult = lsResult & lsGroup64
Next
’处理最后剩余的几个字符
if M3 > 0 then
lsGroup64 = ""
lsGroupBinary = Midb(asContents, len2+1, 3)
Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3
Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15
Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))
Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1)
Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
if M3=1 then
lsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61) ’用=号补足位数
else
lsGroup64 = Char1 & Char2 & Char3 & ChrB(61) ’用=号补足位数
end if
lsResult = lsResult & lsGroup64
end if
Base64encode = lsResult
End Function
Function Base64decode(asContents)
’将Base64编码字符串转换成Ansi编码的字符串
’asContents应当也是ANSI编码的字符串(二进制的字符串也可以)
Dim lsResult
Dim lnPosition
Dim lsGroup64, lsGroupBinary
Dim Char1, Char2, Char3, Char4
Dim Byte1, Byte2, Byte3
Dim M4,len1,len2
len1= Lenb(asContents)
M4 = len1 Mod 4
if len1 < 1 or M4 > 0 then
’字符串长度应当是4的倍数
Base64decode = ""
exit Function
end if
’判断最后一位是不是 = 号
’判断倒数第二位是不是 = 号
’这里m4表示最后剩余的需要单独处理的字符个数
if midb(asContents, len1, 1) = chrb(61) then m4=3
if midb(asContents, len1-1, 1) = chrb(61) then m4=2
if m4 = 0 then
len2=len1
else
len2=len1-4
end if
For lnPosition = 1 To Len2 Step 4
lsGroupBinary = ""
lsGroup64 = Midb(asContents, lnPosition, 4)
Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1
Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1
Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1
Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1
Byte1 = Chrb(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)
Byte2 = lsGroupBinary & Chrb(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
Byte3 = Chrb((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
lsGroupBinary = Byte1 & Byte2 & Byte3
lsResult = lsResult & lsGroupBinary
Next
’处理最后剩余的几个字符
if M4 > 0 then
lsGroupBinary = ""
lsGroup64 = Midb(asContents, len2+1, m4) & chrB(65) ’chr(65)=A,转换成值为0
if M4=2 then ’补足4位,是为了便于计算
lsGroup64 = lsGroup64 & chrB(65)
end if
Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1
Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1
Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1
Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1
Byte1 = Chrb(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)
Byte2 = lsGroupBinary & Chrb(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
Byte3 = Chrb((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
if M4=2 then
lsGroupBinary = Byte1
elseif M4=3 then
lsGroupBinary = Byte1 & Byte2
end if
lsResult = lsResult & lsGroupBinary
end if
Base64decode = lsResult
End Function |