对于用户输入的密码,要求如下:
  1.必须大于8位小于16位
  2.必须有特殊字符,必须有数字,必须有大小写
请问如何去设计一个函数去检查校验,这种密码.

解决方案 »

  1.   

    Private Function CheckPassword(ByVal sPassword As String) As Boolean
        Const SpecialChars = "!@#$%^&*()-+\|="      '这里列出所有的特殊字符
        Dim iLen  As Integer
        Dim iLoop As Integer
        Dim sChar As String
        Dim bHasSpecial As Boolean
        Dim bHasNumber  As Boolean
        Dim bHasLower   As Boolean
        Dim bHasUpper   As Boolean
        iLen = Len(sPassword)
        If iLen < 8 Or iLen > 16 Then
            CheckPassword = False
            Exit Function
        End If
        bHasSpecial = False
        bHasNumber = False
        bHasLower = False
        bHasUpper = False
        For iLoop = 1 To iLen
            sChar = Mid(sPassword, iLoop, 1)
            If InStr(SpecialChars, sChar) > 0 Then bHasSpecial = True
            If sChar >= "0" And sChar <= "9" Then bHasNumber = True
            If sChar >= "a" And sChar <= "z" Then bHasLower = True
            If sChar >= "A" And sChar <= "Z" Then bHasUpper = True
        Next iLoop
        CheckPassword = bHasSpecial And bHasNumber And bHasLower And bHasUpper
    End FunctionPrivate Sub Form_Load()
        Debug.Print CheckPassword("123")
        Debug.Print CheckPassword("123abcDE")
        Debug.Print CheckPassword("123abcDE!")
        End
    End Sub
      

  2.   

    1.用Len可以取得字符串长度2.循环检查String中的字符。Mid取子字符串,Asc得到首个字符的本地编码
      

  3.   

    哈哈 太简单了
    ........
    if trim(txtPass.text)=Password then
       msgbox "OK"
    else
       msgbox "Error"
    end if...................嘻嘻
      

  4.   

    why168()不会吧   有那么简单吗 ?你的不满足他的要 求啊。
        你那个只能是看密码对不对而以啦。
         jadeluo(秀峰)的是最好的啊。
      

  5.   

    同意 zyl910(910:分儿,我又来了!)   上面的 why168() 回答的什么啊,牛头不对马嘴!
      

  6.   

    哈哈 太简单了
    ........
    if trim(txtPass.text<>""then
       msgbox "你填什么我都不让你过去!"
    else
       msgbox "你什么都不填我是不会让你过去的!"
    end if...................嘻嘻