Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Everson Gonçalves

Validador de E-mails

Recommended Posts

Salve, Salve..

 

Seguinte eu estou com um javascript que faz validação de e-mail..

Ele está funcionando, quando você não coloca "@" ou menos de 7 letras ele dá o Alert.

 

Só que se deixar o input em branco ele está aceitando e não está aparecendo o alert que o campo está em branco e se eu colocar por exemplo um e-mail "b.teste@teste.com.br" ele diz que o e-mail está incorreto, acho que deve ser porque tem um "." antes do arroba, sei lá.. :nataldry:

 

Alguém poderia me ajudar a resolver esses problemas?? Segue abaixo o JavaScript:

 

<script LANGUAGE="JavaScript">
function Validaemail()
{
 var obj = eval("document.forms[0].email");
 var txt = obj.value;
 if ((txt.length != 0) && ((txt.indexOf("@") < 1) || (txt.indexOf('.') < 7)))
 {
   alert('Email incorreto!\nEscreva um e-mail Válido.');
obj.focus();
 }
}
</script>

 

Desde já muito obrigado. :natalhappy:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use HTML5, entre os novos input types, há o "email" que é valida o e-mail do campo automaticamente. E vai limpar seu código.

 

type="email"

 

E leia pra entender melhor: http://www.w3schools.com/html5/html5_form_input_types.asp

 

Mas se você preferir usar Javascript, o que o wbruno falou resolve!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Como eu poderia usar essa opção ai, eu fiz um teste aqui mas não funcionou.

 

Desculpe minha ignorância, mas é que não entendo nada de Javascript..

 

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu costumo usar uma função com expressão regular, para validar e-mail, bem que eu queria usar só html5, mas infelizmente não é qqr navegador q suporta o type email e os que não suportam renderizam um text, logo a validação vai para o espaço.

 

Abaixo a minha função ;)

 

function checkMail(mail){
   var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
   if(typeof(mail) == "string"){
           if(er.test(mail)){ return true; }
   }
   else if(typeof(mail) == "object")
   {
   	if(er.test(mail.value)){ 
   		return true; 
       }
   }
   else{
   	return false;
       }
}

 

[]'s espero q ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem que eu queria usar só html5, mas infelizmente não é qqr navegador q suporta o type email e os que não suportam renderizam um text, logo a validação vai para o espaço.

 

É pra isso que existem os hacks!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É pra isso que existem os hacks!

 

Não vejo vantagem em usa-los quando você depende de uma condição para uma determinada ação que pode ser tomada sem a necessidade deles, uso constantemente html5 em produção nos projetos que trabalho, contudo qdo você tem um sistema com mais de 50 formulários e todos precisam ser validados (não apenas campos de e-mail, mas tbm datas, numéricos, etc) acho mais produtivo ter funções de validação.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algumas alterações no seu código. Porque se o tiver um "." antes de outros 6 caracteres ele aponta sendo invalido, oque é errado ja que varios email tem pontos separando nomes ou coisas do tipo. E tambem fiz a modificação para se ele deixar o input vazio ele mostrar o Alert.

 

 

<html>
<head>
<title> Validação de Email</title>

<script type="text/javaScript">
function ValidaEmail()
{
 var obj = document.getElementById("Email").value;
 var txt = obj;

 document.getElementById("copia").innerHTML = txt;

 if ((txt.length == 0) || ((txt.lastIndexOf("@") < 1) || (txt.lastIndexOf('.') < 2)))
 {
   alert('Email incorreto');
 }
}
</script>

</head>
<body>

<form name="form1" method="post" action="">

<div align="center">
Preencha um e-mail incorreto e clique fora da caixa:<br>
<input type="text" id="Email" size="40" maxlength="40" onBlur="ValidaEmail();"/>

</div>

<div align="center" id="copia">  </div>

</form>
</body>
</html>

 

 

outro código bom:

<html>
<head>
<script type="text/javascript">
function validateForm()
{
var x=document.getElementById("email").value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");

if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
 {
 alert("Endereco de E-mail Invalido");
 return false;
 }
}
</script>
</head>

<body>

Email: <input type="text" id="email">
<input type="button" value="Click Me!" onclick="validateForm();" />

</body>
</html>

 

 

Espero ter ajudado

 

Att.

Leandro Moh

Compartilhar este post


Link para o post
Compartilhar em outros sites

// @franklinjavier 

String.prototype.validateMail = function() {
   return /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/.test(this);
};

function validaEmail() {
  var email = document.getElementById('email');
  if (email.value.length < 7 || email.value.validateMail() === false) {
     alert('Email incorreto!\nEscreva um e-mail Válido.');
     email.focus();
  }
}

 

http://jsfiddle.net/JTvtR/1/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.