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

  本帖将收集和征集最全面的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([email protected])%>

  '******************************

  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

  %>