Avatar billede alex_sleiborg Nybegynder
27. oktober 2005 - 11:29 Der er 17 kommentarer og
2 løsninger

Validere en adresse i c#

Jeg skal have valideret en adresse i c#. Altså feks "vejen 12". Nogen der kan klare det?
Avatar billede nielle Nybegynder
27. oktober 2005 - 11:54 #1
Adresser kan se ud på mange-mange-mange forskellige måder! Derfor er det nærmest en umulig ting at lave noget helt generetl. I stedet bør du indskrænke dig til nogle enkelte veldefinerede tilfælde som du så kan validere på.
Avatar billede alex_sleiborg Nybegynder
27. oktober 2005 - 12:08 #2
Du mener altså jeg helt skal undgå, og så validere på adressen?
Avatar billede alex_sleiborg Nybegynder
27. oktober 2005 - 12:22 #3
Den til email virker heller ikke rigtig.

Burde den her ikke være iorden

"\\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\\.[A-Z]{2,4}\\b"
Avatar billede nielle Nybegynder
27. oktober 2005 - 12:36 #4
27/10-2005 12:08:05> Det er i hvert fald en temmelig omgangsrig opgave ... og selv hvis man laver en løsning, er der nærmest med garanti et antal - ellers lovlige - adresser som ville blive afvist.

27/10-2005 12:22:21> Den er ikke helt korrekt. I hvert falde får du masser af forkerte valideringer med dine \\b-tags. I stedet skal den så sådan her ud:

"^[A-Z0-9._%-]+@[A-Z0-9._%-]+\\.[A-Z]{2,4}$"

I midlertid er der faktisk TLD'er med mere end to bogstaver, så denne ville nok være bedre:

"^[A-Z0-9._%-]+@[A-Z0-9._%-]+\\.[A-Z]{2,}$"

Du skriver med store bogstaver, og dette betyder selvfølgeligt at di skal have en IgnoreCase på, men det er du vel klar over. :^)
Avatar billede alex_sleiborg Nybegynder
27. oktober 2005 - 14:03 #5
Ja jeg har ignoreCase på. Jeg dropper det med adresse validering så

Den sidste email validering du nævner, den virker ikke. Når jeg skriver en gyldigt mail adr. så snupper fejl valideringen den
Avatar billede nielle Nybegynder
27. oktober 2005 - 17:44 #6
Kan du ikke give et eksempel på hvilke værdier den fejler med?
Avatar billede roenving Novice
27. oktober 2005 - 17:45 #7
-- og da ingen udover mail-hosten selv må så meget som se på den lokale del af en mail-adresse ifølge den gældende smtp-rfc (http://rfc.net/rfc2821.html#p13, sidste sætning i §2.3.10 !-), og lokale bogstaver idag er lovlige i domæne, vil den ovenstående smide rigtig mange gyldige mail-adresser ud ...

-- de lokale bogstaver vil jeg dog ikke bekymre mig over på nuværende tidspunkt, men et pattern bør se nogenlunde således ud:

@"^.*?@\w[\w.-]*\.[a-z]{2,6}$"

-- idag er den længste tld .museum, derfor de 6 !-)
Avatar billede nielle Nybegynder
27. oktober 2005 - 18:59 #8
roenving> Jeg er ret sikker på at alex ønsker sig en emailadresse, som han kan sende til, hvorfor det næppe dur at "  @eksperten.dk" godkendes af validatoren. Ud over dette kan jeg kun give dig ret. Jeg ville dog ikke indskrænke mit TLD til 6 tegn idet jeg så ville skulle opdatere alle mine scripts når der kommer et TLD med f.eks. 8 tegn.
Avatar billede alex_sleiborg Nybegynder
27. oktober 2005 - 19:04 #9
Jeg er derhjemme nu. Så jeg kan desværre først sende koden her imorgen tidligt

Ja ideen er jo, at brugeren kun har mulighed for at indtaste en gyldigt mail adresse. Så man f.eks. ikke kan indtaste "Hej" som en gyldigt mail
Avatar billede roenving Novice
28. oktober 2005 - 08:20 #10
-- men når ingen andre end mail-hosten selv, på nogen som helst led må validere lokal-adressen efter de gældende standarder for smtp-routing, giver det vel heller ingen mening, at vi forsøger det ...

-- iøvrigt vil alle disse være lovlige (domænet er rent dovenskab !-)

@a.cd <-- en host må godt tillade ingenting som lokal-adresse
.@a.cd
"Peter Jensen"@a.cd
~a@a.cd
Søren+Karl@å.cd <-- nok ikke relevant ...

-- og mange flere, som de allerfleste validatorer vil forhindre ...

-- der er kun een løsning: Undlad at validere lokal-adressen !o]
Avatar billede roenving Novice
28. oktober 2005 - 08:24 #11
PS. Teksten jeg henviser til siger højt og tydeligt, at f.eks. hosten eksperten.dk godt må tillade ingenting som lokal-adresse, men andre regler gør at en streng indledt med mellemrum ikke dur, så man kunne lave nogle valideringer, der gav mening, men mellemrum er f.eks. tilladte inde i streng-afgrænsere, såeh ...
Avatar billede nielle Nybegynder
28. oktober 2005 - 11:01 #12
Hvad med:

"      @eksperten.dk"
Avatar billede roenving Novice
28. oktober 2005 - 11:04 #13
-- det var den type, jeg hentydede til ...
Avatar billede alex_sleiborg Nybegynder
28. oktober 2005 - 14:21 #14
Synes i så jeg også skal lade være med og validere email adressen?
Avatar billede nielle Nybegynder
28. oktober 2005 - 22:21 #15
Bej, men rådet er at du skal passe på med hvordan du validere ... du kan meget hurtigt komme til at udelukke helt acceptable email-adresser.
Avatar billede alex_sleiborg Nybegynder
15. november 2005 - 08:54 #16
Smid et svar begge 2. Jeg dropper helt valideringen på email adresser
Avatar billede nielle Nybegynder
15. november 2005 - 18:06 #17
Jeg synes da at du skal bruge roenving's 27/10-2005 17:45:47 for dine email-adresser.

Validering af adressen bør enten skæres ned til en validering af om der overhovedet er indtastet noget. Alternativt kan du dele adresse-indtastning op over et antal felter: et til gade og nummer, et til by og et til postnummer. Problemet med dette er dog at du så pludseligt vil få problemer med udenlanske adresser som jo følger et andet mønster end de danske.

Husk også på at man kan validere nok så meget, men at det ikke forhindre folk i at bevist skrive noget ulovligt alligevel. Validering bør derfor primært opfattes som en hjælp til brugeren.
Avatar billede roenving Novice
15. november 2005 - 20:13 #18
Oki '-)
Avatar billede roenving Novice
06. december 2005 - 12:40 #19
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester