Martin Hintzmann Andersen <no@spam.dk> writes:
> Jeg er ikke så go' til regular expressions, så derfor spørger jeg her.
>
> - Er der huller i denne email validering ?
Hvis du fortalte os hvad den forventes at genkende (med ord!), så ville
det være meget nemmere at afgøre om dit regulære udtryk matchede dette.
Nu kan vi kun (med besvær) se hvad du faktisk matcher mod, ikke om
det er rigtigt.
Det er også bedst hvis man ikke behøver læse subject for at forstå
teksten :)
> function isValidEmailAddress(s) {
> var temp = s.replace(/\s/g, "")
> return (temp.match(/^[\w\.\-]+\x40[\w\.\-]+\.\w{2,3}$/)) &&
> temp.charAt(0) != "." && !(temp.match(/\.\./))
Dette regulære udtryk matcher en streng på formen:
et eller flere af enten et "ord-tegn" (tal og bogstaver - inklusiver
internationale bogstaver!), punktum eller minus.
efterfulgt af
Tegnet med ASCII-værdien 64, altså @
efterfulgt af
et eller flere af enten et "ord-tegn", punktum eller minus.
efterfulgt af
et punktum
efterfulgt af
to eller tre ord-tegn.
Derefter tjekkes at der ikke startes med "." eller indeholder to "."'er
i træk.
Er det det du vil?
Det er ikke en særlig god tjek af om det er en lovlig e-mail-adresse!
Følgende, fuldt lovlige, e-mail-adresser vil ikke blive accepteret:
foo@example.info
foo+bar@example.com
foo@[127.0.0.1]
foo@[smtp.example.com]
Det er *forbandet* svært at teste for e-mail-adresser, fordi rigtigt meget
faktisk er lovligt. Personligt anbefaler jeg følgende:
/@.+\./
Altså: indeholder snabel-a og punktum, i nævnte rækkefølge og med
noget imellem. Og jeg er ikke helt sikker på at punktummet er påkrævet.
Husk, at en falsk negativ er til *gene* for brugeren, hvis han ikke
får sin, fuldt lovlige, adresse accepteret. Hvis en skurk på den anden
side gerne vil indtaste noget der ikke virker, så er
bill.gates@microsoft.com jo altid god, så det stopper din test ikke
alligevel.
Hvis du gerne vil vide hvad lovlige e-mail-adresser er, så tjek
RFC-2822, afsnit 3.4.1. Du vil nok blive overrasket over hvad der
er lovligt.
/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.'