formulier e-mail check

Status
Niet open voor verdere reacties.

doe_esgek

Nieuwe gebruiker
Lid geworden
22 feb 2005
Berichten
2
kan iemand mij misschien helpen met de e-mail check. Het probleem is dat ik hij de email niet in de goede volgorde checkt dus ook al heb je bijvoorbeeld het @ helemaal vooraan staan, dan ziet ie dat als goed omdat je hem erin hebt staan.
Ik heb het volgende script:

<script language="Javascript">

function checkZip()
{
document.forms[0].postcode.value = document.forms[0].postcode.value.toUpperCase();
rExp = /^(d{4}[a-zA-Z][a-zA-Z])$/;
OK = rExp.exec(document.forms[0].postcode.value);
if (!OK)
{
alert("U heeft het veld postcode niet juist ingevuld. Vul de postcode in met notatie 1234AB");
return false;
}
if (document.forms[0].email.value == "")
{
alert("U heeft het "Email" veld niet ingevuld.");
document.forms[0].email.focus();return false;
}
if (document.forms[0].email.value.indexOf('@') == -1)
{
alert("het "Email" veld is niet correct ingevuld. U heeft geen @ ingevuld.");
document.forms[0].email.focus();return false;
}

if (document.forms[0].email.value.indexOf('.') == -1)
{
alert("het "Email" veld is niet correct ingevuld. U heeft geen punt ingevuld.");
document.forms[0].email.focus();return false;
}

if (document.forms[0].email.value.indexOf('com') == -1)
{
if (document.forms[0].email.value.indexOf('nl') == -1)
{
if (document.forms[0].email.value.indexOf('net') == -1)
{
if (document.forms[0].email.value.indexOf('info') == -1)
{
alert("U heeft geen of een verkeerde hostname achter u e-mail adres staan.");
document.forms[0].email.focus();
return false;
}
}
}
}

else
{
return true;
}
}
</script>



bedankt alvast!
groetjes Marianne
 
Code:
<script language="JavaScript">

function checkform() {

 var
  postcode = document.forms[0].postcode.value.toUpperCase(),
  email = document.forms[0].email.value.toLowerCase(),
  rExp;

 document.forms[0].postcode.value = postcode;
 document.forms[0].email.value = email;

 rExp = /^[1-8]{1}[0-9]{3}[A-Z]{2}$/;
 if (!rExp.exec(postcode)) {
  alert('U heeft het veld postcode niet juist ingevuld.\nVul de postcode in met notatie 1234AB');
  return false;
  };

 rExp = /^[a-z0-9._%-]{2,}@[a-z0-9._%-]{2,}\.[a-z]{2,4}$/;
 if (!rExp.exec(email)) {
  alert('U heeft het veld "Email" niet juist ingevuld.');
  return false;
  };

 // Deze regel is om het script te controleren, weghalen na controle
 alert('Goed ingevuld!'); return false;

 return true;
 };

</script>

<form onsubmit="return checkform()">
 <input type="text" name="postcode">
 <input type="text" name="email">
 <input type="submit">
</form>

Dit werkt goed (tot nu toe :)).
Postcode is van 1000AA t/m 8999ZZ.
Email is in de vorm naam@domein.extensie (2+,2+,2-4). In naam en domein mogen ook cijfers, punt underscore, % en hyphen voorkomen, extensie is alleen letters. Email wordt in kleine letters gezet.


Je gebruikte een " binnen een door " omgeven string, dat gaat niet goed als je het niet backslashed als:
"Een \"qoute\" in een string" == 'Een "quote" in een string'

Na een return breekt de funktie af, er hoeft dus geen else in.


Vr.Gr. Egel.
 
Laatst bewerkt:
Ok :)

Ik heb het nog wat meer nagekeken en postcode mag t/m 9999 (staat op de brievenbus).

rExp = /^[1-9]\d{3}[A-Z]{2}$/;

1 t/m 9, drie 'digits' en A-Z twee maal.
Met
postcode = document.forms[0].postcode.value.toUpperCase().split(' ').join('')
verwijder je ook nog evt spaties uit de postcode.

email is dan: (met de punt nog extra gebackslasched)

rExp = /^[a-z0-9\._%-]{2,}@[a-z0-9\._%-]{2,}\.[a-z]{2,4}$/;

Je kunt dan !rExp.exec(email) of !email.match(rExp) toepassen.


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan