- ·上一篇文章:ASP编程常用代码精选集合(八)
- ·下一篇文章:ASP编程常用代码精选集合(十)
ASP编程常用代码精选集合(九)
1:asp使用正则替换字符串并返回
' RegReplace(vStr,vReg,vCode)
' 使用正则替换字符串并返回
'
' #####################################################
'
' vStr 为原始字符串
' vReg 为正则表达式
' vCode 为替换内容,可使用正则返回的结果 $1、$2 等
'
' #####################################################
'
' a = "<a href=a.txt>一个文本</a><br /><a href=b.asp>一个程序</a>"
' Response.Write RegReplace(a,"<[^<>]*?>","") ' Return "一个文本一个程序"
' a = "<a href=a.txt>一个文本</a><br /><img border=0 src=""x.gif""><a href=b.asp>一个程序</a>"
' Response.Write RegReplace(a,"[\s\S]*?<img[\s\S]*?src=['""]{0,1}([^<>""]*)?['"">]{0,1}?>[\s\S]*","$1") ' Return "x.gif"
Function RegReplace(sStr,vReg,vCode)
Dim Re,vStr
Set Re =
New RegExp
Re.Pattern = vReg
Re.IgnoreCase =
True
Re.Global =
True
vStr = sStr
If Re.Test(vStr) Then
vStr = Re.Replace(vStr,vCode)
End
If
RegReplace = vStr
End Function
2:asp转换字符串编码
| ' C4Code(vStr,FromCharset,ToCharset) ' 转换字符串编码 ' ' ##################################################### ' ' vStr 为原始字符串 ' FromCharset 为原始编码 ' ToCharset 为转换后编码 ' ' ##################################################### ' Function C4Code(vStr,FromCharset,ToCharset) Dim File Set File = server.CreateObject("Adodb.Stream") File.Charset = ToCharset File.Mode = 3 File.Open File.Type = 2 File.Position = 0 File.WriteText vStr File.Position = 0 File.Charset = FromCharset C4Code = File.ReadText End Function %> |
3: asp十六进制个位数字转十进制
| <% ' Hex2Dec(vStr) ' 十六进制个位数字转十进制 ' ' ##################################################### ' ' vStr 为 0-9a-fA-F 的单个字符 ' 该函数为 H2D 函数的支持函数,不推荐单独使用 ' ' ##################################################### ' ' a = Hex2Dec("A") ' Return 10 Function Hex2Dec(vStr) Dim sStr sStr = UCase(vStr) If IsArray(ExpStr(sStr,"[A-F0-9]{1}",",")) Then If IsNumeric(vStr) Then Hex2Dec = CInt(sStr) Else Hex2Dec = Asc(sStr) - 55 End If Else Hex2Dec = 0 End If End Function |
4:asp八进制转十进制,此函数为 Oct 的逆运算
| O2D(vStr) ' 八进制转十进制,此函数为 Oct 的逆运算 ' ' ##################################################### ' ' vStr 为合法的八进制数字或数字字符串 ' ' ##################################################### ' ' a = O2D("12465") ' Return 5429 Function O2D(vStr) Dim sStr,intLoop O2D = 0 sStr = CStr(vStr) If IsArray(ExpStr(sStr,"^[0-7]+$",",")) Then For intLoop = 1 To Len(sStr) O2D = O2D * 8 + CInt(Mid(sStr,intLoop,1)) Next End If End Function ' H2D(vStr) ' 十六进制转十进制,此函数为 Hex 的逆运算 ' ' ##################################################### ' ' vStr 为合法的十六进制数字字符串 ' ' ##################################################### ' ' a = H2D("Fc84D6") ' Return 16549078 Function H2D(vStr) Dim sStr,intLoop H2D = 0 sStr = UCase(vStr) If IsArray(ExpStr(sStr,"^[0-9A-F]+$",",")) Then For intLoop = 1 To Len(sStr) H2D = H2D * 16 + Hex2Dec(Mid(sStr,intLoop,1)) Next End If End Function |
5:aspIP 地址转十六进制数字字符串
| ' IP2H(vStr) ' IP 地址转十六进制数字字符串 ' ' ##################################################### ' ' vStr 为合法的 IP v4 地址,或者合法的 IP v6 地址 ' ' ##################################################### ' ' a = IP2H("220.160.4.17") ' Return "000000000000000000000000DCA00411" ' a = IP2H("F7F0:65:3:22::1") ' Return "F7F00065000300220000000000000001" Function IP2H(vStr) Dim sStr,IP,intLoop sStr = vStr If InStr(sStr,".") > 0 Then IP = Split(vStr,".") For intLoop = 0 To UBound(IP) IP2H = IP2H & Right("0" & Hex(CInt(IP(intLoop))),2) Next ElseIf InStr(sStr,":") > 0 Then Do While InStr(sStr,"::") > 0 And UBound(Split(sStr,":")) < 8 sStr = Replace(sStr,"::",":0::") Loop sStr = Replace(sStr,"::",":") IP = Split(sStr,":") For intLoop = 0 To UBound(IP) IP2H = IP2H & Right("0000" & IP(intLoop),4) Next End If IP2H = UCase(Right("00000000000000000000000000000000" & IP2H,32)) End Function |
