Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Function ValidEMail(sEMail As String) As Boolean
- Dim nCharacter As Integer
- Dim Count As Integer
- Dim sLetra As String
- 'Verifica se o e-mail tem no MÍNIMO 5 caracteres (a@b.c)
- If Len(sEMail) < 5 Then
- 'O e-mail é inválido, pois tem menos
- 'de 5 caracteres
- ValidEMail = False
- Call MsgBox("O e-mail digitado tem menos de 5 caracteres!!!", vbCritical, "ATENÇÃO")
- Exit Function
- End If
- 'Verificar a existencia de arrobas (@) no e-mail
- For nCharacter = 1 To Len(sEMail)
- If Mid(sEMail, nCharacter, 1) = "@" Then
- 'OPA!!! Achou uma arroba!!!
- 'Soma 1 ao contador
- Count = Count + 1
- End If
- Next
- 'Verifica o número de arrobas.
- 'TEM que ter """UMA""" arroba
- If Count <> 1 Then
- 'O e-mail é inválido, pois tem 0 ou
- 'mais de 1 arroba
- ValidEMail = False
- Call MsgBox("O nº de arrobas (@) do e-mail é inválido!!!", vbCritical, "ATENÇÃO")
- Exit Function
- Else
- 'O e-mail tem 1 arroba.
- 'Verificar a posição da arroba
- If InStr(sEMail, "@") = 1 Then
- 'O e-mail é inválido, pois começa
- 'com uma @
- ValidEMail = False
- Call MsgBox("O e-mail foi iniciado com uma arroba (@)!!!", vbCritical, "ATENÇÃO")
- Exit Function
- ElseIf InStr(sEMail, "@") = Len(sEMail) Then
- 'O e-mail é inválido, pois termina
- 'com uma @
- ValidEMail = False
- Call MsgBox("O e-mail termina com uma arroba (@)!!!", vbCritical, "ATENÇÃO")
- Exit Function
- End If
- End If
- nCharacter = 0
- Count = 0
- 'Verificar a existencia de pontos (.) no e-mail
- For nCharacter = 1 To Len(sEMail)
- If Mid(sEMail, nCharacter, 1) = "." Then
- 'OPA!!! Achou um ponto!!!
- 'Soma 1 ao contador
- Count = Count + 1
- End If
- Next
- 'Verifica o número de pontos.
- 'TEM que ter PELO MENOS UM ponto.
- If Count < 1 Then
- 'O e-mail é inválido, pois não tem pontos.
- ValidEMail = False
- Call MsgBox("O e-mail é inválido, pois não contém pontos (.)!!!", vbCritical, "ATENÇÃO")
- Exit Function
- Else
- 'O e-mail tem pelo menos 1 ponto.
- 'Verificar a posição do ponto:
- If InStr(sEMail, ".") = 1 Then
- 'O e-mail é inválido, pois começa
- 'com um ponto
- ValidEMail = False
- Call MsgBox("O e-mail foi iniciado com um ponto (.)!!!", vbCritical, "ATENÇÃO")
- Exit Function
- ElseIf InStr(sEMail, ".") = Len(sEMail) Then
- 'O e-mail é inválido, pois termina
- 'com um ponto.
- ValidEMail = False
- Call MsgBox("O e-mail termina com um ponto (.)!!!", vbCritical, "ATENÇÃO")
- Exit Function
- ElseIf InStr(InStr(sEMail, "@"), sEMail, ".") = 0 Then
- 'O e-mail é inválido, pois termina
- 'com um ponto.
- ValidEMail = False
- Call MsgBox("O e-mail não tem nenhum ponto (.) após a arroba (@)!!!", vbCritical, "ATENÇÃO")
- Exit Function
- End If
- End If
- nCharacter = 0
- Count = 0
- 'Verifica se o e-mail não tem pontos
- 'consecutivos (..) após a arroba (@).
- If InStr(sEMail, "..") > InStr(sEMail, "@") Then
- 'O e-mail é inválido, tem pontos
- 'consecutivos após o @.
- ValidEMail = False
- Call MsgBox("O e-mail contém pontos consecutivos (..) após o arroba (@)!!!", vbCritical, "ATENÇÃO")
- Exit Function
- End If
- 'Verifica se o e-mail tem caracteres
- 'inválidos
- For nCharacter = 1 To Len(sEMail)
- sLetra = Mid$(sEMail, nCharacter, 1)
- If Not (LCase(sLetra) Like "[a-z]" Or sLetra = "@" Or sLetra = "." Or sLetra = "-" Or sLetra = "_" Or IsNumeric(sLetra)) Then
- 'O e-mail é inválido, pois tem
- 'caracteres inválidos
- ValidEMail = False
- Call MsgBox("Foi digitado um caracter inválido no e-mail!!!", vbCritical, "ATENÇÃO")
- Exit Function
- End If
- Next
- nCharacter = 0
- 'Bem, se a verificação chegou até aqui
- 'é porque o e-mail é válido, então...
- ValidEMail = True
- End Function
- Pra chamar a funcao:
- if not (ValidEmail(txtemail.text)) then
- msgbox "Email inválido"
- endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement