[推荐]ASP编程通用函数收藏大全

时间:2022-01-07 01:22:22

本帖将收集和征集最全面的ASP编程应用中通用功能函数,人人为我,我为人人:) 
只要大家每人献出一两条自己收藏已久,精典的通用函数,我想本帖将会对许许多多的ASP编程爱好者、工作者有很大的帮助,也将成为大家ASP编程的必备函数集。 
赶快检查您自己的函数库吧,看一下你有的我们这里都有了吗? 
如果你发现了你的函数库里还有着那么一两条鲜为人知的函数,那快点以下面格式跟帖回复吧。 
发表通用函数帖子格式:

复制代码代码如下:

<% 
'****************************** 
'函数:Function RndIP(s) 
'参数:s,四个随机生成的IP头,如"218$211$61$221" 
'作者:阿里西西 
'日期:2007/7/12 
'描述:随机IP地址生成,返回一个随机IP地址值 
'示例:<%=RndIP("218$211$61$221")%> 
'****************************** 
Function RndIP(s) 
on error resume next 
Dim ip,ip1,ip2,ip3,a,b,c 
if s = "" or ubound(split(s,"$"))<>3 then 
response.write "IP前缀参数设置错误,请返回重新设置后启动程序。" 
response.end 
end if 
Randomize 
ip1 = cInt(254*rnd) 
ip2 = cInt(254*rnd) 
ip3 = cInt(254*rnd) 
b = Int ((3*rnd)+1) 

a=Split(s,"$") 
c=a(b) 
RndIP = (c&"."&ip1&"."&ip2&"."&ip3) 
End Function 
%> 


过滤常用的非法字符

复制代码代码如下:

<%  
'******************************  
'函数:ReplaceBadChar(strChar)  
'参数:strChar,待过滤字符  
'作者:阿里西西  
'日期:2007/7/12  
'描述:过滤常用的非法字符  
'示例:<%=ReplaceBadChar("包含有非法字符的'*示例")%>  
'******************************  
function ReplaceBadChar(strChar)  
 if strChar="" then  
  ReplaceBadChar=""  
 else  
  ReplaceBadChar=replace(replace(replace(replace(replace(replace(replace(strChar,"'",""),"*",""),"?",""),"(",""),")",""),"<",""),".","")  
 end if  
end function  
%> 


格式化HTML字符显示

复制代码代码如下:

<%  
'******************************  
'函数:HTMLEncode(fString)  
'参数:fString,待格式化字符串  
'作者:阿里西西  
'日期:2007/7/12  
'描述:格式化HTML字符显示  
'示例:<%=HTMLEncode(fString)%>  
'******************************  
function HTMLEncode(fString)  
if not isnull(fString) then  
    fString = replace(fString, ">", ">")  
    fString = replace(fString, "<", "<")  
    fString = Replace(fString, CHR(32), " ")  
    fString = Replace(fString, CHR(9), " ")  
    fString = Replace(fString, CHR(34), """)  
    fString = Replace(fString, CHR(39), "'")  
    fString = Replace(fString, CHR(13), "")  
    fString = Replace(fString, CHR(10) & CHR(10), "  ")  
    fString = Replace(fString, CHR(10), "  ")  
    HTMLEncode = fString  
end if  
end function  
%> 


生成不重复的随机数,通常应用于静态HTML生成的文件名

复制代码代码如下:

<%  
'******************************  
'函数:GetNewFileName  
'参数:无  
'作者:阿里西西  
'日期:2007/7/12  
'描述:生成不重复的随机数,通常应用于静态HTML生成的文件名  
'示例:<%=GetNewFileName()%>  
'******************************  
Function GetNewFileName()  
 dim ranNum  
 dim dtNow  
 dtNow=Now()  
 ranNum=int(90000*rnd)+10000  
 GetNewFileName=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum  
End Function  
%> 


邮件地址验证函数

复制代码代码如下:

<%  
'******************************  
'函数:IsValidEmail(email)  
'参数:email,待验证的邮件地址  
'作者:阿里西西  
'日期:2007/7/12  
'描述:邮件地址验证  
'示例:<%=IsValidEmail(alixixi@msn.com)%>  
'******************************  
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  
%>



区分中英文长度,限长截断标题字符

复制代码代码如下:

<%  
'******************************  
'函数:InterceptString(txt,length)  
'参数:txt,待判断截取的标题字符串;length,标题长度  
'作者:阿里西西  
'日期:2007/7/12  
'描述:区分中英文,限长截断标题字符  
'示例:<%=InterceptString("欢迎光临阿里西西WEB开发网站",8)%>  
'******************************  
Function InterceptString(txt,length)  
 dim x,y,ii  
 txt=trim(txt)  
 x = len(txt)  
 y = 0  
 if x >= 1 then  
  for ii = 1 to x  
   if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then '如果是汉字  
    y = y + 2  
   else  
    y = y + 1  
   end if  
   if y >= length then  
    txt = left(trim(txt),ii) '字符串限长  
    exit for  
   end if  
  next  
  InterceptString = txt  
 else  
  InterceptString = ""  
 end if  
End Function  
%>

 

复制代码代码如下:

<% 
'****************************** 
'函数:strLength(str) 
'参数:str,待判断长度的字符串 
'作者:阿里西西 
'日期:2007/7/12 
'描述:求字符串长度。汉字算两个字符,英文算一个字符 
'示例:<%=strLength("欢迎光临阿里西西")%> 
'****************************** 
function strLength(str) 
 ON ERROR RESUME NEXT 
 dim WINNT_CHINESE 
 WINNT_CHINESE    = (len("中国")=2) 
 if WINNT_CHINESE then 
        dim l,t,c 
        dim i 
        l=len(str) 
        t=l 
        for i=1 to l 
         c=asc(mid(str,i,1)) 
            if c<0 then c=c+65536 
            if c>255 then 
                t=t+1 
            end if 
        next 
        strLength=t 
    else  
        strLength=len(str) 
    end if 
    if err.number<>0 then err.clear 
end function 
%>

 

复制代码代码如下:

采集获取远程页面的内容<% 
'****************************** 
'函数:GetURL(url)  
'参数:url,远程页面的网址,必须输入完整格式的网址 
'作者:阿里西西 
'日期:2007/7/12 
'描述:采集获取远程页面的内容,很多小偷和采集程序都用到 
'示例:<%=GetURL(http://www.alixixi.com/index.html)%> 
'****************************** 
Function GetURL(url)  
Set Retrieval = CreateObject("Microsoft.XMLHTTP")  
With Retrieval  
.Open "GET", url, False 
.Send  
GetURL = bytes2bstr(.responsebody) 
'对取得信息进行验证,如果信息长度小于100则说明截取失败 
if len(.responsebody)<100 then 
response.write "获取远程文件 <a href="&url&" target=_blank>"&url&"</a> 失败。" 
response.end 
end if 
End With  
Set Retrieval = Nothing  
End Function 
' 二进制转字符串,否则会出现乱码的! 
function bytes2bstr(vin)  
strreturn = ""  
for i = 1 to lenb(vin)  
thischarcode = ascb(midb(vin,i,1))  
if thischarcode < &h80 then  
strreturn = strreturn & chr(thischarcode)  
else  
nextcharcode = ascb(midb(vin,i+1,1))  
strreturn = strreturn & chr(clng(thischarcode) * &h100 + cint(nextcharcode))  
i = i + 1  
end if  
next  
bytes2bstr = strreturn  
end function  
%>