Avatar billede stig69 Nybegynder
14. oktober 2003 - 19:34 Der er 24 kommentarer og
1 løsning

email validering

Så er vi på den igen...

Jeg benytter denne klassiske mail-validering, som jeg har fundet på nettet:

var emailregexp = /^([A-Z]+)([A-Z0-9_\.\-]+)@([A-Z0-9]+)([.,_,-]([A-Z0-9]+))*\.[A-Z]{2,4}$/i;

if(!emailregexp.test(document.form.email.value))....osv

men, vil gerne have at et tomt felt også bliver accepteret, altså hvis man undlader at skrive i feltet. Så, hvordan gøres det?

Stig
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 19:45 #1
[A-Z]{2,4}  er ikke korrekt længere.
Avatar billede stig69 Nybegynder
14. oktober 2003 - 19:47 #2
Hva' vil det sige? Hvordan ser den så ud i stedet?
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 19:50 #3
Det tænkte jeg sådan set ikke over - det er bare en advarsel. Måske
er den bare for gammel og dårlig. a--d.com er da vist lovlig, men heller ikke
med.

Det var bare om du skulle finde en bedre (ikke fordi jeg kender een)
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 19:53 #4
Men ellers skulle

var emailregexp = /^|([A-Z]+)([A-Z0-9_\.\-]+)@([A-Z0-9]+)([.,_,-]([A-Z0-9]+))*\.[A-Z]{2,4}$/i;

kunne gøre det hvis du ellers er tilfreds
Avatar billede stig69 Nybegynder
14. oktober 2003 - 19:56 #5
Men er det ikke den jeg har??
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 19:59 #6
jo + at de tager en tom streng. Jeg kender ingen andre på stående fod
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 20:00 #7
"Bevis" for at domæne navne kan være længere end 4 tegn:
http://british.museum
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:00 #8
Jeg fandt en som "roenving" har lavet i et tidligere spørgsmål (http://www.eksperten.dk/spm/387009) , han plejer at have styr på tingene. Ikke fordi du (erikjacobsen) ikke har ;-)


var regexp = /^[\w\.\-_]+@[\w\-_]+\.[\w\.\-_]+$/i;
  tekst=f.mail.value.toLowerCase();
  if (!regexp.test(tekst)){
      alert ("Der skal stå en gyldig e-mail adresse i tekst feltet");
      f.mail.focus();
      return false;
  }
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:01 #9
Men hvor se jeg at den godtager en tom streng?
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:02 #10
Ahh - jeg havde ikke set "|" i starten. Er det den der angiver en tom streg?
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:04 #11
| betyder enten godkend det der står foran eller det der står bagved - passer det?
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 20:04 #12
umiddelbart er det en forbedring ;)

Tilføj en | som jeg viste dig
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:18 #13
erikjacobsen--> Nååår, Jeg prøvede at tilføje |, men det bevirkede at den godkendte alt. Er du sikker på | virker?
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:29 #14
ikke mere hjælp... suk :-(
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 20:33 #15
Joh, men jeg kan kun sidde ved computeren 23 timer og 33 minutter i døgnet.
Det ku' vær' vi sku' gi' den en parentes:

var regexp = /^(|[\w\.\-_]+@[\w\-_]+\.[\w\.\-_]+)$/i;
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:41 #16
23 timer og 33 minutter. Altså næsten lige så lang tid som jeg...

Det virkede. Nu skal jeg ikke forstyre dig mere. Send et svar ind og du kan få dine velfortjente point

Tak for hjælpen
Avatar billede erikjacobsen Ekspert
14. oktober 2003 - 20:43 #17
Nej tak, jeg har ikke været særlig hjælpsom. Jeg har ikke forsøgt at
se om roenvings løsning er god - og du fandt den selv.
Avatar billede stig69 Nybegynder
14. oktober 2003 - 20:46 #18
Nu ikke så beskeden. Så kommer du aldrig op på førstepladsen :-)

Du hjalp med det tomme felt, og det er de 15 point værd. Så kom med et svar

Stig
Avatar billede stig69 Nybegynder
14. oktober 2003 - 21:02 #19
Kom nu, så vi kan få lukket spørgsmålet
Avatar billede roenving Novice
15. oktober 2003 - 16:29 #20
-- og dfen angivne regexp accepterer nogle tilfælde med fejl, f.eks. karl@ljkghjh..lhkj, men det er så oplagt en fejl, at den bør ændres umiddelbart ved modtagelsen !-)
Avatar billede stig69 Nybegynder
15. oktober 2003 - 17:19 #21
roenving--> Er du på vej men en opdatering da??? Så kan du få pointene, når nu erikjacobsen ikke vil, det er trods alt dig der har lavet den

Stig
Avatar billede roenving Novice
15. oktober 2003 - 17:40 #22
-- jeg har desværre ikke læst mig til de nøjagtige regler, men een mulighed er (hvis bogstaver/tal _skal_ bruges som første efter punktum :)

var regexp = /^(|\w[\w\.\-]+@[\w\-]+\.\w[\w\.\-]+)$/i;

men det kræver _meget_ mere at teste for f.eks. dobbelt-punktummer i mail-navnet, men nu vil dog ikke acceptere ovenstående fejl, men den vil stadig æde:

h..j@jkh.j..___

-- og sådan et check må høre hjemme på serveren, den validering man laver i klienten må være en hoved-validering, som luger alle de rigtigt grimme fra, men ikke tester i detaljer !-)

-- eller flere tests efter hinanden, feks. test2 og 3:

regexp = /\.\./g;
//test2

regexp = /\_\_/g;
//test3

osv.
Avatar billede stig69 Nybegynder
10. september 2008 - 23:51 #23
lig et svar. Er ved at lukke gamle spørgsmål
Avatar billede roenving Novice
11. september 2008 - 23:04 #24
Oki '-)

-- og en nyere udgave, vil nok være noget i retning af:

var regexp = /^.*@\w[\w\-.]*\.[a-z]{2,6}$/i;
Avatar billede roenving Novice
12. september 2008 - 09:57 #25
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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