Peter Brodersen wrote :
> On Tue, 3 Dec 2002 10:45:53 +0000 (UTC), Jesper Stocholm
> <jespers@stocholm.invalid> wrote:
>
>>Jeg har brug for at kunne hjælpe mine brugere ved at fortælle dem, at
>>en emailadresse (sandsynligvis) ikke er korrekt. Til det bruger jeg
>>følgende RegExp:
>>
>>var filter =
>>/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
>
> Da det blot skal være en hjælp, kan jeg ikke se nogen grund til at
> gøre det så kompliceret, og skulle have alle facetter med (fx
> specifikt have alle tld's med).
>
> Men om ikke andet kan du forsøge med:
>
> /^([a-zA-Z0-9_\.\-])+\@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+([a-z
> A-Z0-9]{2,6})$/;
ok
> I ovenstående kræver jeg mindst to led i det fulde domænenavn (omend
> "dk" i princippet også kunne modtage post). Hvert led skal være på
> mindst ét tegn (tal eller bogstav), og må evt. have et vilkårligt
> antal tegn derefter (tal, bogstav eller bindestreg), forudsat at det
> så slutter af med tal eller bogstav.
det lyder rimeligt ... :)
>>if (!filter.test(strEmail)) {
>> alert('Emailadressen er ikke korrekt !');
> Gør verden en stor tjeneste, og lav din alert om til en confirm, så
> brugeren selv kan tage stilling. Der er alt for mange "sikre" scripts
> derude, der en eller anden dag går hen og bliver defekt på grund af
> forskellige omstændigheder (i ovenstående tilfælde fx den dag, nogen
> alligevel opretter fx "what_not" i deres zone, har brugernavnet
> "brodersen,peter", eller blot vil begynde at modtage post på @dk).
Der forestages udelukkende tests på brugerdata, hvor der testes på
_forekomsten_ af data - dvs om et navn overhovedet er angivet (.length==
0). I andre tilfælde - som fx mobilnummer - testes der med RegExp meget
løst, dvs om telefonnummeret består af 8 cifre. Der testes ikke på
formatet ifb fastnet-numre, da der kan forekomme extensions/lokalnumre.
> I den virkelige verden ville jeg være
> insisterende og give medarbejderen 2-3 chancer, men hvis dit script
> bliver ved med at være insisterende og ikke til at tale til fornuft,
> så må jeg jo gå derfra med den erfaring rigere.
>
>>MEN ... det er ikke helt bullit-proof. Fx validerer den følgende
>>emailadresser:
>
> Det kan ikke blive helt bullet-proof. Derfor anbefalingen af confirm
> fremfor en alert/return false-combo.
jeps ... og dine bemærkninger har jeg taget til mig. Jeg fandt i min
søgning efter disse scripts også en del meget komplicerede scripts, men
jeg vil gerne have det så simpelt som muligt - samtidig med, at det vil
fange eventuelle tastefejl fra brugernes side.
>>j@stoc--holm.dk
>
> Denne vil blive accepteret i mit eksempel - og det må den også godt.
> Som et eksempel kan det nævnes, at domænet
> "0-------------------------------------------------------------0.dk"
> findes - og i øvrigt også har en MX-record.
>
>>(der er ganske givet flere)
>
> Hvor ofte er det dog, du er udsat for de tilfælde i praksis?
Det har jeg ingen anelse om da sitet ikke er "blevet født" endnu. Det er
dog en del af kravspecifikationen, at der skal testes med javascript om
emailadresser "er rigtige" ... og selvom jeg har presset på for at få det
slettet, så er den desværre ,ikke røget ud.
> Det er ikke det, vi er interesseret i at validere (og slet ikke at
> kræve at brugerne skal indtaste deres navn og e-mail-adresse i ét og
> samme format i første omgang).
.... tak for dine kommentarer ...
--
Jesper Stocholm -
http://stocholm.dk
FAQ for dk.edb.internet.webdesign.serverside.asp :
http://asp-faq.dk