Anders Boll <infonospam@katgrafik.dk> writes:
> For at validere et email-felt bruger jeg nedenstående script, og
> det fungere ganske tilfredsstillende
> bortset fra, at jeg mangler en validering for " . " - at der skal
> være et eller flere for at e-mail adressen er korrekt.
> Og så en alertboks: Du skal huske at skrive et punktum...
>
> Kan nogen hjælpe?
Det er en simpel streng-test, så det er nok nemmest at bruge
et regulært udtryk (eller flere hvis man vil have mere detaljerede
fejlrapporter):
function validate(form1) {
var elem = form.elements['Email'];
var tekst = elem.value;
if (!/^[^æøå@ ]+@[^@æøå ]+\.[^@æøå ]+$/i.test(tekst)) {
alert('E-mail-adressen er ikke gyldig. Den skal indehold'+
' netop et "@" og mindst et "." efter "@"'et, og må'
' ikke indeholde "æ", "ø", "å" eller mellemrum.');
elem.focus();
return false;
}
}
eller
function validate(form1) {
var elem = form.elements['Email'];
var tekst = elem.value;
if (/ /.test(tekst)) {
alert("E-mail-adressen må ikke indeholde mellemrum");
} else if (/[æøå]/i.test(tekst)) {
alert('E-mail-adressen må ikke indeholde "æ", "ø", eller "å"');
} else if (/@.*@/i.test(tekst)) {
alert('E-mail-adressen må kun indeholde ét "@"');
} else if (/^.+@.+\..+$/.test(tekst)) {
return true;
}
elem.focus();
return false;
}
Lidt stil-kommentarer til din kode:
> <!--//
HTML-kommentarer er ikke nødvendigt i script-elementer mere (i
browsere lavet siden ca. 1997)
> function validate(form1) {
>
> placering=0;
Husk at erklære dine variable som lokale. Ellers vil ovenstående
oprette "placering" som en global variabel, som så kan ligge
og spilde plads i det globale objekt. Skriv "var" foran variabelnavnet
her for at erklære variablen som lokal:
var placering = 0;
> tekst=(form1.Email.value).toLowerCase();
Ditto.
> placering=tekst.indexOf("@");
> if(tekst ==""){
> alert ("Du skal skrive din korrekte e-mail adresse, for at vi
> kan modtage din bestilling.");
"e-mail-adresse" er i et ord, med bindestreger :)
> alert ("Der er ulovlige tegn i din e-mail adresse. Må bl.a ikke
> indeholde: æ ø å Æ Ø Å ; : , ...osv.");
Det er for øvrigt forkert at der ikke må være danske bogstaver i
e-mail-adresser. Fx kunne man jo have sin e-mail-konto på domænet
"rødgrød.nu" :)
Held og lykke.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'