| 
				 
					<% 
					'判断文件名是否合法 
					Function isFilename(aFilename) 
					 Dim sErrorStr,iNameLength,i 
					 isFilename=TRUE 
					 sErrorStr=Array("/","",":","*","?","""","<",">","|") 
					 iNameLength=Len(aFilename) 
					 If iNameLength<1 Or iNameLength=null Then 
					  isFilename=FALSE 
					 Else 
					  For i=0 To 8 
					   If instr(aFilename,sErrorStr(i)) Then 
					    isFilename=FALSE     
					   End If 
					  Next 
					 End If 
					End Function 
				
					  
				
					'去掉字符串头尾的连续的回车和空格 
					function trimVBcrlf(str) 
					 trimVBcrlf=rtrimVBcrlf(ltrimVBcrlf(str)) 
					end function 
				
					'去掉字符串开头的连续的回车和空格 
					function ltrimVBcrlf(str) 
					 dim pos,isBlankChar 
					 pos=1 
					 isBlankChar=true 
					 while isBlankChar 
					  if mid(str,pos,1)=" " then 
					   pos=pos+1 
					  elseif mid(str,pos,2)=VBcrlf then 
					   pos=pos+2 
					  else 
					   isBlankChar=false 
					  end if 
					 wend 
					 ltrimVBcrlf=right(str,len(str)-pos+1) 
					end function 
				
					'去掉字符串末尾的连续的回车和空格 
					function rtrimVBcrlf(str) 
					 dim pos,isBlankChar 
					 pos=len(str) 
					 isBlankChar=true 
					 while isBlankChar and pos>=2 
					  if mid(str,pos,1)=" " then 
					   pos=pos-1 
					  elseif mid(str,pos-1,2)=VBcrlf then 
					   pos=pos-2 
					  else 
					   isBlankChar=false 
					  end if 
					 wend 
					 rtrimVBcrlf=rtrim(left(str,pos)) 
					end function 
				
					'判断Email是否有效,返回1表示正确 
					Function isEmail(aEmail) 
					 Dim iLocat,v,iLength,i,checkletter 
					 If instr(aEmail,"@") = 0 Or instr(aEmail,".") = 0 Then 
					  isEmail=0 
					  EXIT FUNCTION 
					 End If 
					 iLocat=instr(aEmail,"@") 
					 If instr(iLocat,aEmail,".")=0 Or instr(iLocat+1,aEmail,"@")>0 Then 
					  isEmail=0 
					  EXIT FUNCTION 
					 End If 
					 If left(aEmail,1)="." Or right(aEmail,1)="." Or left(aEmail,1)="@" Or right(aEmail,1)="@" Then 
					  isEmail=0 
					  EXIT FUNCTION 
					 End If 
					 v="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-.@" 
					 iLength=len(aEmail) 
					 For i=1 To iLength 
					  checkletter=mid(aEmail,i,1) 
					  If instr(v,checkletter)=0 Then 
					   isEmail=0 
					   EXIT FUNCTION 
					  End If 
					 Next 
					 isEmail=1 
					End Function 
				
					'测试用:显示服务器信息 
					Sub showServer 
					 Dim name 
					 Response.write "<Table border=1 bordercolor=lightblue CELLSPACING=0>" 
					 for each name in request.servervariables 
					  Response.write "<tr>" 
					  Response.write "<td>"&name&"</td>" 
					  Response.write "<td>"&request.servervariables(name)&"<br></td>" 
					  Response.write "</tr>" 
					 next 
					 Response.write "</table>" 
					End Sub 
				
					'测试用:显示Rs结果集以及字段名称 
					Sub showRs(rs) 
					 Dim strTable,whatever 
					 Response.write "<center><table><tr>" 
					 for each whatever in rs.fields 
					  response.write "<td><b>" & whatever.name & "</B></TD>" 
					 next 
					 strTable = "</tr><tr><td>"&rs.GetString(,,"</td><td>","</tr><tr><td>"," ") &"</td></tr></table></center>" 
					 Response.Write(strTable) 
					End Sub 
				
					'用HTML格式显示文本 
					Function txt2Html(str) 
					 if isnull(str) then 
					  txt2Html="" 
					  exit Function 
					 end if 
					 str=Replace(str,chr(34),""") 
					 str=Replace(str,"<","<") 
					 str=Replace(str,">",">") 
					 str=Replace(str,chr(13)+chr(10),"<br>") 
					 str=Replace(str,chr(9),"    ") 
					 str=Replace(str," "," ") 
					 txt2Html=str 
					End Function 
				
					'测试用:显示调试错误信息 
					Sub showError 
					 Dim sErrMsg 
					 sErrMsg=Err.Source&" "&Err.Description 
					 Response.write "<center>"&sErrMsg&"</center>" 
					 Err.clear 
					End Sub 
				
					'显示文字计数器 
					Sub showCounter 
					Dim fs,outfile,filename,count 
					filename=server.mappath("count.txt") 
					Set fs = CreateObject("Scripting.FileSystemObject") 
					If fs.fileExists(filename) Then 
					 Set outfile=fs.openTextFile(filename,1) 
					 count=outfile.readline 
					 count=count+1 
					 Response.write "<center>浏览人次:"&count&"<center>" 
					 outfile.close 
					 Set outfile=fs.CreateTextFile(filename) 
					 outfile.writeline(count) 
					Else 
					 Set outfile=fs.openTextFile(filename,8,TRUE) 
					 count=0 
					 outfile.writeline(count) 
					END IF 
					outfile.close 
					set fs=nothing 
					End Sub 
					%> 
				
					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   
				
				
					  
			 |