Avatar billede musicchart.dk Nybegynder
24. august 2005 - 21:21 Der er 14 kommentarer og
1 løsning

Fejl ved RegularExpression

Hvorfor den melder fejl ved følgende:

Regex regEmail = new Regex("^[\w-\.]+@([\w-]+\.)+[\w-]{2,3}$", RegexOptions.IgnoreCase);

ved følgende:

"^[\w-\.]+@([\w-]+\.)+[\w-]{2,3}$"

Fejlmedd:
"Unrecognized escape sequence"

Den virker fx fint ved en RegularExpressionValidator

Hilsen,
Bjarke
Avatar billede arne_v Ekspert
24. august 2005 - 21:23 #1
enten skal du bruge @"..."  eller så skal alle \ fordobles til \\
Avatar billede erikjacobsen Ekspert
24. august 2005 - 21:24 #2
Regex regEmail = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,3}$", RegexOptions.IgnoreCase);
Avatar billede erikjacobsen Ekspert
24. august 2005 - 21:25 #3
Og så bør du finde et regulært udtryk, der rent faktisk accepterer alle lovlige email-adresser. Du frasorterer nogle af dem.
Avatar billede musicchart.dk Nybegynder
24. august 2005 - 21:30 #4
Endnu en gang et hurtigt svar i ASP.NET kategorien, jeg siger mange tak.
Smider i et svar?

erikjacobsen >> vil noget ala "^(\w([\w\.+-]*\w|)@\w([\w-]\.)*[\w-]?\.[a-z]{2,}$" være bedre?
Avatar billede erikjacobsen Ekspert
24. august 2005 - 21:33 #5
Ingen point til mig, tak. Jeg ser 2 fundamentale problemer ved det du skriver:

1) Der er reelt ingen regler før @-et
2) TLD kan være længere end 3 tegn

Om der så er mere ved jeg ikke. Du skal blot vide, at når du sætter et så snævert filter på, vil du frasortere (og fornærme) nogle af dine besøgende.
Avatar billede arne_v Ekspert
24. august 2005 - 21:37 #6
svar
Avatar billede driis Nybegynder
24. august 2005 - 21:46 #7
Se evt. www.regexlib.com for inspiration til Regular Expressions - der er mange bud på, hvordan man matcher en emailadresse.
Avatar billede arne_v Ekspert
24. august 2005 - 21:47 #8
det er efterhånden blevet ret almindeligt at sende folk en email med et
confirmation link
Avatar billede musicchart.dk Nybegynder
24. august 2005 - 22:23 #9
arne_v >> det er også rigtigt, men derfor kan man alligevel starte med at tjekke om e-mailen er gyldig. Et confirmation link i en e-mail, er mere for at sikre at det er brugerens e-mail.
Avatar billede arne_v Ekspert
24. august 2005 - 22:25 #10
korrekt men den fanger også det andet som "side effekt" - omend det så tager
lidt tid inden det bliver opdaget
Avatar billede musicchart.dk Nybegynder
24. august 2005 - 22:32 #11
Rigtigt, man burde sikre sig fuldstændig:
- Clientside validation
- Serverside validation
- Database validation
- E-mail confirmation
Avatar billede erikjacobsen Ekspert
24. august 2005 - 22:38 #12
Og så mangler du at se om der en MX-record i DNS-en for domænet.

Du må sådan set gøre hvad du vil ;)  Men min advarsel var bare at du ikke behøver afvise lovlige adresser.
Avatar billede musicchart.dk Nybegynder
24. august 2005 - 22:44 #13
Jeg takker også for din advarsel. Jeg vil da også overveje hvordan jeg gør det smartest og mest brugervenligt... ASP.NET er nu en gang et lækkert værktøj.
Avatar billede erikjacobsen Ekspert
24. august 2005 - 22:45 #14
Min gamle regel er: Der skal være et punktum til højre for et @
Den var, og bør være, fremtidssikret ;)
Avatar billede musicchart.dk Nybegynder
24. august 2005 - 22:52 #15
End til man en dag laver "universielle" domæner... såsom "http://eksperten", tja... hvis det sker, så den tid den sorg :o) En stor tak for hjælpen skal der ihvert fald lyde herfra - nu må vi se om .NET / C# kurset i Aalborg bliver til noget, så jeg kan få udviklet mine evner... hvem ved, måske kan jeg snart hjælpe til med spørgsmålene i denne kategori :o)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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