Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public Function ValidEMail(sEMail As String) As Boolean
  2. Dim nCharacter As Integer
  3. Dim Count As Integer
  4. Dim sLetra As String
  5.     'Verifica se o e-mail tem no MÍNIMO 5 caracteres (a@b.c)
  6.    If Len(sEMail) < 5 Then
  7.         'O e-mail é inválido, pois tem menos
  8.        'de 5 caracteres
  9.        ValidEMail = False
  10.         Call MsgBox("O e-mail digitado tem menos de 5 caracteres!!!", vbCritical, "ATENÇÃO")
  11.         Exit Function
  12.     End If
  13.     'Verificar a existencia de arrobas (@) no e-mail
  14.    For nCharacter = 1 To Len(sEMail)
  15.         If Mid(sEMail, nCharacter, 1) = "@" Then
  16.             'OPA!!! Achou uma arroba!!!
  17.            'Soma 1 ao contador
  18.            Count = Count + 1
  19.         End If
  20.     Next
  21.     'Verifica o número de arrobas.
  22.    'TEM que ter """UMA""" arroba
  23.    If Count <> 1 Then
  24.         'O e-mail é inválido, pois tem 0 ou
  25.        'mais de 1 arroba
  26.        ValidEMail = False
  27.         Call MsgBox("O nº de arrobas (@) do e-mail é inválido!!!", vbCritical, "ATENÇÃO")
  28.         Exit Function
  29.     Else
  30.         'O e-mail tem 1 arroba.
  31.        'Verificar a posição da arroba
  32.        If InStr(sEMail, "@") = 1 Then
  33.             'O e-mail é inválido, pois começa
  34.            'com uma @
  35.            ValidEMail = False
  36.             Call MsgBox("O e-mail foi iniciado com uma arroba (@)!!!", vbCritical, "ATENÇÃO")
  37.             Exit Function
  38.         ElseIf InStr(sEMail, "@") = Len(sEMail) Then
  39.             'O e-mail é inválido, pois termina
  40.            'com uma @
  41.            ValidEMail = False
  42.             Call MsgBox("O e-mail termina com uma arroba (@)!!!", vbCritical, "ATENÇÃO")
  43.             Exit Function
  44.         End If
  45.     End If
  46.     nCharacter = 0
  47.     Count = 0
  48.     'Verificar a existencia de pontos (.) no e-mail
  49.    For nCharacter = 1 To Len(sEMail)
  50.         If Mid(sEMail, nCharacter, 1) = "." Then
  51.             'OPA!!! Achou um ponto!!!
  52.            'Soma 1 ao contador
  53.            Count = Count + 1
  54.         End If
  55.     Next
  56.     'Verifica o número de pontos.
  57.    'TEM que ter PELO MENOS UM ponto.
  58.    If Count < 1 Then
  59.         'O e-mail é inválido, pois não tem pontos.
  60.        ValidEMail = False
  61.         Call MsgBox("O e-mail é inválido, pois não contém pontos (.)!!!", vbCritical, "ATENÇÃO")
  62.         Exit Function
  63.     Else
  64.         'O e-mail tem pelo menos 1 ponto.
  65.        'Verificar a posição do ponto:
  66.        If InStr(sEMail, ".") = 1 Then
  67.             'O e-mail é inválido, pois começa
  68.            'com um ponto
  69.            ValidEMail = False
  70.             Call MsgBox("O e-mail foi iniciado com um ponto (.)!!!", vbCritical, "ATENÇÃO")
  71.             Exit Function
  72.         ElseIf InStr(sEMail, ".") = Len(sEMail) Then
  73.             'O e-mail é inválido, pois termina
  74.            'com um ponto.
  75.            ValidEMail = False
  76.             Call MsgBox("O e-mail termina com um ponto (.)!!!", vbCritical, "ATENÇÃO")
  77.             Exit Function
  78.         ElseIf InStr(InStr(sEMail, "@"), sEMail, ".") = 0 Then
  79.             'O e-mail é inválido, pois termina
  80.            'com um ponto.
  81.            ValidEMail = False
  82.             Call MsgBox("O e-mail não tem nenhum ponto (.) após a arroba (@)!!!", vbCritical, "ATENÇÃO")
  83.             Exit Function
  84.         End If
  85.     End If
  86.     nCharacter = 0
  87.     Count = 0
  88.     'Verifica se o e-mail não tem pontos
  89.    'consecutivos (..) após a arroba (@).
  90.    If InStr(sEMail, "..") > InStr(sEMail, "@") Then
  91.         'O e-mail é inválido, tem pontos
  92.        'consecutivos após o @.
  93.        ValidEMail = False
  94.         Call MsgBox("O e-mail contém pontos consecutivos (..) após o arroba (@)!!!", vbCritical, "ATENÇÃO")
  95.         Exit Function
  96.     End If
  97.     'Verifica se o e-mail tem caracteres
  98.    'inválidos
  99.    For nCharacter = 1 To Len(sEMail)
  100.         sLetra = Mid$(sEMail, nCharacter, 1)
  101.         If Not (LCase(sLetra) Like "[a-z]" Or sLetra = "@" Or sLetra = "." Or sLetra = "-" Or sLetra = "_" Or IsNumeric(sLetra)) Then
  102.             'O e-mail é inválido, pois tem
  103.            'caracteres inválidos
  104.            ValidEMail = False
  105.             Call MsgBox("Foi digitado um caracter inválido no e-mail!!!", vbCritical, "ATENÇÃO")
  106.             Exit Function
  107.         End If
  108.     Next
  109.     nCharacter = 0
  110.     'Bem, se a verificação chegou até aqui
  111.    'é porque o e-mail é válido, então...
  112.    ValidEMail = True
  113. End Function
  114.  
  115. Pra chamar a funcao:
  116.    if not (ValidEmail(txtemail.text)) then
  117.       msgbox "Email inválido"
  118.    endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement