输入验证类Validator2009-12-12<%@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+)*$", Str) End Function
Public Function IsUrl(ByVal Str) IsUrl = Test("^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]"":+!]*([^<>""])*$", Str) End Function
Public Function IsNum(ByVal Str) IsNum= Test("^d+$", Str) End Function
Public Function IsQQ(ByVal Str) IsQQ = Test("^[1-9]d{4,8}$", Str) End Function
Public Function IsZip(ByVal Str) IsZip = Test("^[1-9]d{5}$", Str) End Function
Public Function IsIdCard(ByVal Str) IsIdCard = Test("^d{15}(d{2}[A-Za-z0-9])?$", Str) End Function
Public Function IsChinese(ByVal Str) IsChinese = Test("^[u0391-uFFE5]+$", Str) End Function
Public Function IsEnglish(ByVal Str) IsEnglish = Test("^[A-Za-z]+$", Str) End Function
Public Function IsMobile(ByVal Str) IsMobile = Test("^(((d{3}))|(d{3}-))?13d{9}$", Str) End Function
Public Function IsPhone(ByVal Str) IsPhone = Test("^(((d{3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}$", 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})$", Str) Else IsDateFormat = Test("^(d{1,2})([-./])(d{1,2})\2((d{4})|(d{2}))$", 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*ands*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+)[Dd]*$", "$1")) 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