📄 ixs_clsmain.asp
字号:
TempStr = TempStr & Str
Next
Clone = TempStr
End Function
' ============================================
' 按照指定的正则表达式替换字符
' ============================================
Public Function ReFilter(p_Patrn, p_Str, p_Type, ReplaceWith)
Dim RegEx
Set RegEx = New RegExp
If p_Type = 1 Then
RegEx.Global = True
Else
RegEx.Global = False
End If
RegEx.Pattern = p_Patrn
RegEx.IgnoreCase = True
ReFilter = RegEx.Replace(p_Str, ReplaceWith)
End Function
' ============================================
' 按照指定的正则表达式返回字符
' ============================================
Public Function ReSearch(p_Patrn, p_Str, p_Type, Spacer)
Dim RegEx, Match, Matches , RetStr, i
i = 0
Set RegEx = New RegExp
RegEx.Pattern = p_Patrn
RegEx.IgnoreCase = True
RegEx.Global = True
Set Matches = RegEx.Execute(p_Str)
For Each Match In Matches
i = i + 1
If p_Type = 0 Then
RetStr = RetStr & Match.Value
If i < Matches.Count Then RetStr = RetStr & Spacer
Else
RetStr = RetStr & Match.Value
If i < Matches.Count Then RetStr = RetStr & Spacer
If p_Type = i Then Exit For
End If
Next
ReSearch = RetStr
End Function
' ============================================
' 将文本中的HTML标记清理掉 清理后尾部追加:StrWith
' ============================================
Public Function RemoveHTML(StrHTML, StrWith)
Dim RegEx, Match, Matches
Set RegEx = New Regexp
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = "<.+?>"
Set Matches = RegEx.Execute(StrHTML)
For Each Match In Matches
StrHtml = Replace(StrHTML, Match.Value, "")
Next
StrHtml = StrHTML & StrWith
RemoveHTML = StrHTML
Set RegEx = Nothing
End Function
' ============================================
' 将字符串中的Str中的HTML代码进行过滤 用于显示HTML代码
' ============================================
Public Function HTMLEncode(Str)
HTMLEncode = ""
If Trim(Str) = "" Or IsNull(Str) Then Exit Function
Str = Replace(Str, ">", ">")
Str = Replace(Str, "<", "<")
Str = Replace(Str, "''", "'")
Str = Replace(Str, Chr(32), " ")
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 Function
' ============================================
' 去除Html格式,用于从数据库中取出值填入输入框时 注意:value="?" 这边一定要用双引号
' ============================================
Public Function inHTML(Str)
inHTML = ""
If Trim(Str) = "" Or IsNull(Str) Then Exit Function
Str = Replace(Str, "&", "&")
Str = Replace(Str, "<", "<")
Str = Replace(Str, ">", ">")
Str = Replace(Str, Chr(34), """)
inHTML = Str
End Function
' ============================================
' 用于JS代码输出
' ============================================
Function FixJs(Str)
If Str <>"" Then
str = Replace(Str,"\", "\\")
Str = Replace(Str, Chr(34), "\""")
Str = Replace(Str, Chr(39),"\'")
Str = Replace(Str, Chr(13), "\n")
Str = Replace(Str, Chr(10), "\r")
str = Replace(Str,"'", "'")
End If
FixJs = Str
End Function
' ============================================
' 用于JS解码
' ============================================
Function EnFixJs(Str)
If Str <>"" Then
Str = Replace(Str, "'", "'")
Str = Replace(Str, "\""", Chr(34))
Str = Replace(Str, "\'", Chr(39))
Str = Replace(Str, "\r", Chr(10))
Str = Replace(Str, "\n", Chr(13))
Str = Replace(Str, "\\", "\")
End If
EnFixJs = Str
End Function
' ============================================
' 取实际字符长度 临时解决方案
' ============================================
Public Function StrLen(Str)
Dim l, t, i
If Str = "" Or IsNull(Str) Then
StrLen = 0
Exit Function
Else
l = Len(Str)
t = l
For i = 1 To l
If AscW(Mid(Str, i, 1)) > 255 Then t = t + 1
Next
StrLen = t
End If
End Function
' ============================================
' 截取源字符串Str的前LenNum个字符
' 一个中文字符为2个字节长
' 如果被截取,尾部追加:StrWith
' ============================================
Public Function Cut(p_Value, LenNum, StrWith)
Dim P_Num, X
If StrLen(p_Value) <= LenNum Then
Cut = p_Value
Else
P_Num = 0
X = 0
Do While Not P_Num > LenNum - 2
X = X + 1
If AscW(Mid(p_Value, X, 1)) > 255 Or UCase(Mid(p_Value, X, 1)) = "W" Then
P_Num = Int(P_Num) + 2
Else
P_Num = Int(P_Num) + 1
End If
Cut = Left(Trim(p_Value), X) & StrWith
Loop
End If
End Function
' ============================================
' 验证邮件地址的合法性
' ============================================
Public Function IsEmail(Email)
IsEmail = True
If Email = "" Then IsEmail = False : Exit Function
Dim RegEx
Set RegEx = New RegExp
RegEx.Pattern = "^(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)$"
RegEx.IgnoreCase = True
RegEx.Global = True
IsEmail = RegEx.Test(Email)
Set RegEx = Nothing
End Function
' ============================================
' 检查IP地址合法性
' ============================================
Public Function IsIp(IP, p_Type)
IsIp = True
If IP = "" Then IsIp = False : Exit Function
Dim RegEx
Set RegEx = New RegExp
If p_Type = 1 Then ' 用于兼容通配符,应用在IP限制
RegEx.Pattern = "^((0|\*)?|[1-9|\*](\d|\*)?|[0-1|\*](\d|\*){2}|2[0-4|\*](\d|\*)|25[0-5|\*])\.((0|\*)?|[1-9|\*](\d|\*)?|[0-1|\*](\d|\*){2}|2[0-4|\*](\d|\*)|25[0-5|\*])\.((0|\*)?|[1-9|\*](\d|\*)?|[0-1|\*](\d|\*){2}|2[0-4|\*](\d|\*)|25[0-5|\*])\.((0|\*)?|[1-9|\*](\d|\*)?|[0-1|\*](\d|\*){2}|2[0-4|\*](\d|\*)|25[0-5|\*])$"
Else
RegEx.Pattern = "^(0?|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(0?|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(0?|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(0?|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])$"
End If
RegEx.IgnoreCase = True
RegEx.Global = True
IsIp = RegEx.Test(IP)
Set RegEx = Nothing
End Function
' ============================================
' 格式化时间(用于显示)
' ============================================
Public Function FormatTime(s_Time, n_Flag)
If IsDate(s_Time) = False Then Exit Function
Dim y, m, d, h, mi, s, w
' 增加客户端时区同步功能
' 全站显示时间时必须调用此方法,否则无法正确显示时区
s_Time = DateAdd("h", TimeZone - Main_Setting(18), s_Time)
FormatTime = ""
y = CStr(Year(s_Time))
m = CStr(Month(s_Time))
If Len(m) = 1 Then m = "0" & m
d = CStr(Day(s_Time))
If Len(d) = 1 Then d = "0" & d
h = CStr(Hour(s_Time))
If Len(h) = 1 Then h = "0" & h
mi = CStr(Minute(s_Time))
If Len(mi) = 1 Then mi = "0" & mi
s = CStr(Second(s_Time))
If Len(s) = 1 Then s = "0" & s
W = Split(Main_Setting(68), ",")(Weekday(s_Time) - 1)
Select Case n_Flag
Case 1 ' yyyy-mm-dd hh:mm:ss
FormatTime = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
Case 2 ' yyyy-mm-dd
FormatTime = y & "-" & m & "-" & d
Case 3 ' mm-dd
FormatTime = m & "-" & d
Case 4 ' hh:mm:ss
FormatTime = h & ":" & mi & ":" & s
Case 5 ' yyyymmddhhmmss
FormatTime = y & m & d & h & mi & s
Case 6 ' yyyy年mm月dd日
FormatTime = y & "年" & m & "月" & d & "日"
Case 7 ' yyyy年mm月dd日 hh时mm分ss秒
FormatTime = y & "年" & m & "月" & d & "日" & " " & h & "时" & mi & "分" & s & "秒"
Case 8 ' yyyy年mm月dd日 星期w
FormatTime = y & "年" & m & "月" & d & "日" & " " & w
End Select
End Function
' ============================================
' 判断是否安全字符串,在注册登陆等特殊字段中使用
' ============================================
Public Function IsSafeStr(Str)
Dim s_BadStr, n, i
s_BadStr = "' &<>?%,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32) & Main_Setting(50)
n = Len(s_BadStr)
IsSafeStr = True
If Str = "" Or IsNull(Str) Then
IsSafeStr = False
Exit Function
End If
For i = 1 To n
If InStr(Str, Mid(s_BadStr, i, 1)) > 0 Then
IsSafeStr = False
Exit Function
End If
Next
End Function
' ============================================
' 函数名称:Format_Ip
' 函数功能:IP地址转换函数
' 其他说明:无
' 传入参数:
' 1、ip:需要格式化的IP地址
' 2、p_Type:格式化方法
' 返回结果:
' p_Type = 0:格式化后为15位IP地址格式
' p_Type = 1:转换成双精度整数
' ============================================
Public Function Format_Ip(ip, p_Type)
Dim a, i, Sip
a = Split(ip, ".")
If UBound(a) <> 3 Then Format_Ip = 0 : Exit Function
For i = 0 To 3
Sip = Sip + CInt(a(i)) * (256 ^ (3 - i))
If CLng(p_Type) = 6 Then ' 还原成通用格式
a(i) = ReFilter("0+", a(i), 1, "")
If a(i) = "" Then a(i) = "0"
Format_Ip = Format_Ip & a(i) & "."
Else
Format_Ip = Format_Ip & (String(3 - Len(a(i)), "0") & a(i) & ".")
End If
Next
Format_Ip = ReFilter("\.$", Format_Ip, 1, "")
Select Case CLng(p_Type)
Case 1 ' 显示前三段 127.000.000.***
Format_Ip = Left(Format_Ip, 12) & "***"
Case 2 ' 显示前两段 127.000.***.***
Format_Ip = Left(Format_Ip, 8) & "***.***"
Case 3 ' 显示前一段 127.***.***.***
Format_Ip = Left(Format_Ip, 4) & "***.***.***"
Case 4 ' 隐藏IP:***.***.***.***
Format_Ip = "***.***.***.***"
Case 5 ' 双精度整数
Format_Ip = Sip
Case Else ' 全部显示 127.000.000.001
Format_Ip = Format_Ip
End Select
End Function
' ============================================
' 函数名称:CheckIp
' 函数功能:检查FindIp是否在IpStr的范围内
' 其他说明:这里使用的是字符串匹配,而不是范围匹配
' 改函数实现了IP地址的15位数字任意限定
' 传入参数:
' 1、IpStr:IP地址库
' 2、Find:待验证的IP地址
' 返回结果:
' True:Find在IpStr中有匹配的项目
' False:Find在IpStr中无匹配的项目
' ============================================
Public Function CheckIp(IpStr, Find)
Dim i, Temp, A, B
CheckIp = False
' 对范围值进行整形,通配符为“*”
Temp = Split(IpStr, ".")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -