+------------------------------------------------------------------------------------------------------+
敝帚自珍:ASP数据校验类Validator [2005-10-20] Xmercy 发表在 Develop
| <%@Language="VBScript" CodePage="936"%> <% 'Option Explicit Class Validator '************************************************* ' Validator for ASP beta 3 服务器端脚本 ' code by 我佛山人 ' wfsr@cunite.com '************************************************* Private Re Private ICodeName Private ICodeSessionName
Public Property Let CodeName(ByVal PCodeName) ICodeName = PCodeName End Property
Public Property Get CodeName() CodeName = ICodeName End Property
Public Property Let CodeSessionName(ByVal PCodeSessionName) ICodeSessionName = PCodeSessionName End Property
Public Property Get CodeSessionName() CodeSessionName = ICodeSessionName End Property
Private Sub Class_Initialize() Set Re = New RegExp Re.IgnoreCase = True Re.Global = True Me.CodeName = "vCode" Me.CodeSessionName = "vCode" End Sub
Private Sub Class_Terminate() Set Re = Nothing End Sub
Public Function IsEmail(ByVal Str) IsEmail = Test("^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*{ListLog}quot;, Str) End Function
Public Function IsUrl(ByVal Str) IsUrl = Test("^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>""])*{ListLog}quot;, Str) End Function
Public Function IsNum(ByVal Str) IsNum= Test("^\d+{ListLog}quot;, Str) End Function
Public Function IsQQ(ByVal Str) IsQQ = Test("^[1-9]\d{4,8}{ListLog}quot;, Str) End Function
Public Function IsZip(ByVal Str) IsZip = Test("^[1-9]\d{5}{ListLog}quot;, Str) End Function
Public Function IsIdCard(ByVal Str) IsIdCard = Test("^\d{15}(\d{2}[A-Za-z0-9])?{ListLog}quot;, Str) End Function
Public Function IsChinese(ByVal Str) IsChinese = Test("^[\u0391-\uFFE5]+{ListLog}quot;, Str) End Function
Public Function IsEnglish(ByVal Str) IsEnglish = Test("^[A-Za-z]+{ListLog}quot;, Str) End Function
Public Function IsMobile(ByVal Str) IsMobile = Test("^((\(\d{3}\))|(\d{3}\-))?13\d{9}{ListLog}quot;, Str) End Function
Public Function IsPhone(ByVal Str) IsPhone = Test("^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}{ListLog}quot;, Str) End Function
Public Function IsSafe(ByVal Str) IsSafe = (Test("^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\""]*)|.{0,5})$|\s", Str) = False) End Function
Public Function IsNotEmpty(ByVal Str) IsNotEmpty = LenB(Str) > 0 End Function
Public Function IsDateFormat(ByVal Str, ByVal Format) IF Not IsDate(Str) Then IsDateFormat = False Exit Function End IF
IF Format = "YMD" Then IsDateFormat = Test("^((\d{4})|(\d{2}))([-./])(\d{1,2})\4(\d{1,2}){ListLog}quot;, Str) Else IsDateFormat = Test("^(\d{1,2})([-./])(\d{1,2})\\2((\d{4})|(\d{2})){ListLog}quot;, Str) End IF End Function
Public Function IsEqual(ByVal Src, ByVal Tar) IsEqual = (Src = Tar) End Function
Public Function Compare(ByVal Op1, ByVal Operator, ByVal Op2) Compare = False IF Dic.Exists(Operator) Then Compare = Eval(Dic.Item(Operator)) Elseif IsNotEmpty(Op1) Then Compare = Eval(Op1 & Operator & Op2 ) End IF End Function
Public Function Range(ByVal Src, ByVal Min, ByVal Max) Min = CInt(Min) : Max = CInt(Max) Range = (Min < Src And Src < Max) End Function
Public Function Group(ByVal Src, ByVal Min, ByVal Max) Min = CInt(Min) : Max = CInt(Max) Dim Num : Num = UBound(Split(Src, ",")) + 1 Group = Range(Num, Min - 1, Max + 1) End Function
Public Function Custom(ByVal Str, ByVal Reg) Custom = Test(Reg, Str) End Function
Public Function Limit(ByVal Str, ByVal Min, ByVal Max) Min = CInt(Min) : Max = CInt(Max) Dim L : L = Len(Str) Limit = (Min <= L And L <= Max) End Function
Public Function LimitB(ByVal Str, ByVal Min, ByVal Max) Min = CInt(Min) : Max = CInt(Max) Dim L : L =bLen(Str) LimitB = (Min <= L And L <= Max) End Function
Private Function Test(ByVal Pattern, ByVal Str) If IsNull(Str) Or IsEmpty(Str) Then Test = False Else Re.Pattern = Pattern Test = Re.Test(CStr(Str)) End If End Function
Public Function bLen(ByVal Str) bLen = Len(Replace(Str, "[^\x00-\xFF]", "..")) End Function
Private Function Replace(ByVal Str, ByVal Pattern, ByVal ReStr) Re.Pattern = Pattern Replace = Re.Replace(Str, ReStr) End Function
Private Function B2S(ByVal iStr) Dim reVal : reVal= "" Dim i, Code, nCode For i = 1 to LenB(iStr) Code = AscB(MidB(iStr, i, 1)) IF Code < &h80 Then reVal = reVal & Chr(Code) Else nCode = AscB(MidB(iStr, i+1, 1)) reVal = reVal & Chr(CLng(Code) * &h100 + CInt(nCode)) i = i + 1 End IF Next B2S = reVal End Function
Public Function SafeStr(ByVal Name) If IsNull(Name) Or IsEmpty(Name) Then SafeStr = False Else SafeStr = Replace(Trim(Name), "(\s*and\s*\w*=\w*)|['%&<>=]", "") End If End Function
Public Function SafeNo(ByVal Name) If IsNull(Name) Or IsEmpty(Name) Then SafeNo = 0 Else SafeNo = (Replace(Trim(Name), "^[\D]*(\d+)[\D\d]*{ListLog}quot;, "")) End If End Function
Public Function IsValidCode() IsValidCode = ((Request.Form(Me.CodeName) = Session(Me.CodeSessionName)) AND Session(Me.CodeSessionName) <> "") End Function
Public Function IsValidPost() Dim Url1 : Url1 = Cstr(Request.ServerVariables("HTTP_REFERER")) Dim Url2 : Url2 = Cstr(Request.ServerVariables("SERVER_NAME")) IsValidPost = (Mid(Url1, 8, Len(Url2)) = Url2) End Function
End Class %> | |
+------------------------------------------------------------------------------------------------------+ |