Email cím formátum ellenőrzés javascript-ben

Ma írtam egy rövid kis script részletet, ami egy "text" típusú "emailcim" nevű beviteli mezőt ellenőriz le submit-nál a "form1" nevű form-on.
Beírom, hogy később ne kelljen keresni és talán más is használt veszi :)


<HTML>
<HEAD></HEAD>
<BODY>

<script language="javascript">
<!--
function emailCheck()
{
  var elsopont = document.form1.emailcim.value.indexOf('.',0);
  var lastpont = document.form1.emailcim.value.lastIndexOf('.');
  var kukac = document.form1.emailcim.value.indexOf('@',0);
  var last_kukac = document.form1.emailcim.value.lastIndexOf('@');
  var email_size = document.form1.emailcim.value.length;

  if (document.form1.emailcim.value=='' || kukac==(-1) || kukac==0 || elsopont==0 

|| elsopont==(-1) || (lastpont==(email_size-1)) || (kukac==(email_size-1)) || 

((kukac+1)==elsopont) || (kukac!=last_kukac))
    {
     alert('Hibás email cím formátum!')
     document.form1.emailcim.focus()
     document.form1.emailcim.select() 
     return false;
    }
    return true;
}
//-->
</script>

<!-- ------ HTML start ------ //-->

<form name="form1" method="post" action="masik_oldal.htm" onSubmit="return 

emailCheck()">
  <input name="emailcim" type="text" id="emailcim" size="25" maxlength="50">
  <input type="submit" name="Submit" value="Küldés">
</form>

</BODY>
</HTML>

Hozzászólások

Szerintem ez egyszerűbb és elegánsabb is:

function emailCheck(myForm) {
if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.form1.emailcim.value))
{
return (true)
}
else
{
alert("Hibás email cím formátum!")
return (false)
}
}

Halkan jegyzem meg, hogy az e-mail cím localaddress részében (@ előtt) lehet pluszjel is. Csak kevesen tudnak róla, mert ritka az olyan IMAP szerver, amivel ezt ki lehet használni. Pedig roppant kellemes, pl. Cyrusszal így megcímezhető egy-egy account almappája is.

Példa: feliratkozol egy levlistára ezzel a címmel:

cim+listaneve@domenem.hu

Ha van INBOX/listaneve nevű almappád, akkor a listáról érkező levelek rögtön oda fognak bepotyogni, nem kell szűrőket használni. Igen kényelmes. :)

--
Sokan nincsenek tudatában annak, / hogy egyszer mindenki meghal. / Akik ráébrednek erre, / azonnal abbahagyják az ellenségeskedést.