Ir para conteúdo
Fórum Script Brasil
  • 0

Validar E-mail


fromhell

Pergunta

E aew Galera!

Montei uma função para validar e-mails, porém estou com umas dúvidas bobinhas.

alguém sabe quais são os caracteres inválidos para endereços de e-mail?

e a segunda é se pode ter (".", "_", etcs.), antes de depois da "@"?

Agradeço desde já!

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Simples!!!

Se você sabe que apenas são aceitos: pontos (.), underline (_) e o que sempre vai que é o arroba (@), então quaisquer outros carcteres são inválidos.

Link para o comentário
Compartilhar em outros sites

  • 0

Bem... eu nunca vi nenhum site/servidor (o que seja) com algum caractere diferente de letras e numeros como nome.

Ex.:

Eu nunca vi um site assim:

www.eu_to_maluco.com

E acho q nunca vi algum assim também:

www.eu-to-maluco.com

E não lembro de ter visto algum endereco de email com algum traço (-).

Logo venho a deduzir que estes caracteres só podem estar ANTES do arroba (@).

Então, faça uma uma função que proiba todas os caracteres diferentes que estes que comentamos, com a exceção do traço (-), na qual, pelo menos eu, não tenho certeza se existe ou não algum email com ele.

Sua função deverá permitir emails como estes:

guto.gotoso@bol.com.br (ex. de um antigo email meu biggrin.gif )

lucas_ahlert@hotmail.com.br (ex. de um email de um amigo meu)

E pra via das dúvidas...

from-hell@MSN.com (ficticio... wink.gif )

Note que não existe também nenhum site que tenha menos de 3 caracteres como nome.

Logo você pode incrementar na sua funcao algo que verifique se depois do arroba (@) temos no minimo 3 caracteres antes do PRIMEIRO ponto (.).

Boa programação (como diz o ursão) biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

De acordo com o registro:

Regras sintáticas que um domínio deve seguir:

- Tamanho mínimo de 2 e máximo de 26 caracteres, não incluindo a categoria, por exemplo: no domínio XXXX.COM.BR, esta limitação se refere ao XXXX.

- Caracteres válidos são [A-Z;0-9] e o hífen.

- Nenhum tipo de acentuação é válido.

- Não pode conter somente números.

- O hífen vale como separador sintático interno de palavras, sendo que domínios já registrados com ou sem o mesmo, só poderão ser registrados com esta diferença pelo detentor do primeiro registro.

OBS.: Especificamente para o domínio .NOM.BR é necessário a escolha de 2 nomes, ou seja: NOME1.NOME2.NOM.BR.

Link para o comentário
Compartilhar em outros sites

  • 0

lcs_sp

- Nenhum tipo de acentuação é válido

Se não me engano, tem em algum páis da Europa, pelo que lembro-me, que dá pra ter dominios com acentos. O fato é recente, tem no máximo 6 semanas.

Vou procurar um texto sobre isso do outro país, pra conhecimentos gerais mesmo...curiosidades...

t+

Link para o comentário
Compartilhar em outros sites

  • 0

bom,

Se não me engano, tem em algum páis da Europa, pelo que lembro-me, que dá pra ter dominios com acentos. O fato é recente, tem no máximo 6 semanas.

essa eu realmente não fazia idéia!

mas baseado em algumas funções que vi!

montei essa:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Const FHMailNulo = ""
Const FHMailErro = "Erro de Sintaxe"
Const FHMailOK = "E-Mail Certo"
Function FHMail(EMail)
  Dim SizeMail, Contador, Caracter, Estagio
  
  EMail = UCase(Trim(EMail))
  SizeMail = Len(EMail)
  
  If EMail <> "" Then
	Estagio = "EmailC1"
	For Contador = 1 To SizeMail
   Caracter = Mid(EMail, Contador, 1)

   If Caracter >= "A" And Caracter <= "Z" Then
  Caracter = "Letra"
   ElseIf  Caracter >= "0" And Caracter <= "9" Then
  Caracter = "Numero"
   ElseIf Caracter = "-" Or Caracter = "_" Then
  Caracter = "Traco"
   End If

   Select Case Caracter
  Case "Letra"
    Select Case Estagio
  	Case "EmailC1"
     Estagio = "EmailC2"
  	Case "EmailC2"
     Estagio = "EmailCx"
  	Case "EmailCx"
     Estagio = "EmailCx"
  	Case "Dominio1C1"
     Estagio = "Dominio1C2"
  	Case "Dominio1C2"
     Estagio = "Dominio1Cx"
  	Case "Dominio1Cx"
     Estagio = "Dominio1Cx"
  	Case "Dominio2C1"
     Estagio = "Dominio2C2"
  	Case "Dominio2C2"
     Estagio = "Dominio2C3"
  	Case "Dominio2C3"
     Estagio = "Dominio2C4"
  	Case "Dominio2C4"
     Estagio = "Dominio2C5"
  	Case "Dominio2C5"
     Estagio = "Dominio2Cx"
  	Case "Extensao1C1"
     Estagio = "Extensao1C2"
  	Case "Extensao1C2"
     Estagio = "Extensao1C3"
  	Case "Extensao1C3"
     Estagio = "Extensao1C4"
  	Case "Extensao1C4"
     Estagio = "Extensao1C5"
  	Case "Extensao1C5"
     Estagio = "Extensao1Cx"
  	Case "Extensao2C1"
     Estagio = "Extensao2C2"
  	Case "Extensao2C2"
     Estagio = "Extensao2C3"
  	Case "Extensao2C3"
     FHMail = FHMailErro
     Exit Function
    End Select
  Case "Numero"
    Select Case Estagio
  	Case "EmailC1"
     Estagio = "EmailC2"
  	Case "EmailC2"
     Estagio = "EmailCx"
  	Case "EmailCx"
     Estagio = "EmailCx"
  	Case "Dominio1C1"
     Estagio = "Dominio1C2"
  	Case "Dominio1C2"
     Estagio = "Dominio1Cx"
  	Case "Dominio1Cx"
     Estagio = "Dominio1Cx"
  	Case "Dominio2C1"
     Estagio = "Dominio2C2"
  	Case "Dominio2C2"
     Estagio = "Dominio2C3"
  	Case "Dominio2C3"
     Estagio = "Dominio2C4"
  	Case "Dominio2C4"
     Estagio = "Dominio2C5"
  	Case "Dominio2C5"
     Estagio = "Dominio2Cx"
  	Case Else
     FHMail = FHMailErro
     Exit Function
    End Select
  Case "Traco"
    Select Case Estagio
  	Case "EmailCx"
     Estagio = "EmailCx"
  	Case "Dominio1Cx"
     Estagio = "Dominio1Cx"
  	Case Else
     FHMail = FHMailErro
     Exit Function
    End Select
  Case "."
    Select Case Estagio
  	Case "EmailCx"
     Estagio = "EmailC1"
  	Case "Dominio1Cx"
     Estagio = "Dominio2C1"
  	Case "Dominio2C3"
     Estagio = "Extensao1C1"
  	Case "Dominio2C4"
     Estagio = "Extensao1C1"
  	Case "Dominio2C5"
     Estagio = "Extensao1C1"
  	Case "Dominio2Cx"
     Estagio = "Extensao1C1"
  	Case "Extensao1C3"
     Estagio = "Extensao2C1"
  	Case "Extensao1C4"
     Estagio = "Extensao2C1"
  	Case "Extensao1C5"
     Estagio = "Extensao2C1"
  	Case "Extensao1Cx"
     Estagio = "Extensao2C1"
  	Case Else
     FHMail = FHMailErro
     Exit Function
    End Select
  Case "@"
    Select Case Estagio
  	Case "EmailCx"
     Estagio = "Dominio1C1"
  	Case Else
     FHMail = FHMailErro
     Exit Function
    End Select
  Case Else
    FHMail = FHMailErro
    Exit Function
   End Select
'   Response.Write("Estágio: " & Estagio & " - Caracter: " & Mid(EMail, Contador, 1) & "<br>") 'Apenas para saber qual é o caracter e estágio em questão (caso de erros), não é necessária
	Next
	If (Estagio = "Dominio2Cx") Or (Estagio = "Extensao1C5") Or (Estagio >= "Dominio2C3" And Estagio <= "Dominio2C5") Or (Estagio >= "Extensao1C3" And Estagio <= "Extensao1C5") Or (Estagio = "Extensao2C3") Then
   FHMail = FHMailok
   Exit Function
	Else
   FHMail = FHMailErro
   Exit Function
	End If
  End If
End Function

Retorno = FHMail(Request.Form("email"))
%>
<%= Retorno %>
<form name="FHMail" method="POST" action="<%= Request.ServerVariables("SCRIPT_NAME") %>">
  Teste um e-mail: 
  <input name="email" type="text" value="<%= Request.Form("email") %>">
  <input type="submit" name="Submit" value="Testar">
</form>

gostaria da opnião de vocês sobre ela, pois os testes que fiz foram em e-mails tipo:

ig@ig.com.br

usuario@subdominio.dominio.xxxx.xx

mas encontrei um erro, pelo menos acho que é erro. não existe extensão de domínio com numeros (ex.: 999.99), o problema é que não consegui resolver totalmente esse problema! mas minimizei um pouco!

obrigado pela ajuda de todos!

se alguém encontrar outros erros me fala ai pra tentar solucionar!

Link para o comentário
Compartilhar em outros sites

  • 0

Ae galera, como disse, está aki o texto que fala do país que já deixa registrar domínios com acentos.

http://www.zonemasters.com.br/forum/index....=339&hl=acentos

Vejam, é impressionante.

É a Suiça

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...