Avatar billede vels Nybegynder
06. juni 2007 - 17:41 Der er 5 kommentarer og
1 løsning

email validering

Hej

Nogle der ligger inde med et ok fornuftigt script til at validere emails med?
Avatar billede horsmark Nybegynder
07. juni 2007 - 07:07 #1
prøv denne:
    function isEmail( s ) {
        var reg1 = /(@.*@)|(\.\.)|(,)|(@\.)|(\.@)|(^\.)|( )|([æøåÆØÅüöäÜÖÄ])/;    // definitions for nonvalid email
        var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2}|com|net|org|gov|mil|int|biz|pro|info|arpa|aero|coop|name|museum)(\]?)$/;     // definitions for valid email
        if (!reg1.test( s ) && reg2.test( s ) ) {
            return true
        } else {
            return false
        }
    }
Avatar billede roenving Novice
08. juni 2007 - 14:57 #2
>>horsmark

-- der er da intet galt i, at et domæne-navn indeholder landespecifikke tegn eller at det, der står foran @-tegnet indeholder hvadsomhelst ?-)

-- aligevel ville jeg nok vælge et relativt simpelt check:

function isValidAsEmail(txt){
  return !!txt.match(/^.*@\w[\w\.-]\.[a-z]{2,6}$/);
}
Avatar billede horsmark Nybegynder
08. juni 2007 - 15:27 #3
well det er jo den gamle lange uendelige diskussion ... tænkte goknok at der var chance for at den kom op til overfladen igen :-)

Så langt min sparsomme viden går til - så mener jeg der er op til de enkelte postservere om de kan håndtere specielle landespecifikke tegn (encodings f.eks. iso-8859-1 eller utf-8) og så vidt jeg ved at der f.eks ligeledes  heller intet til hinder for at indsætte et & tegn foran snabela - men sandsynligheden for at det bliver tolket korrekt undervejs på farten imellem serverne vil jeg mene er for lille - så hellere skære ind til benet og sige "hvilket format af emailadresser vil vi som udgangspunkt garantere har en god chance for at blive tolket korrekt" og dermed en "valid" email...

lang smøre ~ overkill for de fleste OG dit valideringseksempel dutter heller ikke :-)
Avatar billede roenving Novice
08. juni 2007 - 15:55 #4
Problemet med at det går galt på vejen skulle være elimineret med den standard, der stadig gælder for området (rfc 2821, april 2001, http://www.ietf.org/rfc/rfc2821.txt, se specielt sidste sætning i 2.3.10 Mailbox and Address !-)

-- og jo, mit skema dur, men da implementeringen af RegExps er så forskellig, som den er, vil f.eks. IE6 ikke godtage æøå i domæne-delen, mens det glimrende godtages af alle med en Gecko-maskine !o]

-- men netop de landespecifikke tegn i domænet er nok ikke et problem i mail-adresser endnu, men det er klart, at der er noget, der skal justeres, når det problem begynder at være det !-)
Avatar billede horsmark Nybegynder
08. juni 2007 - 16:23 #5
Som sagt så er kompleksiteten så stor med validering af emails at det er op til den enkelte validering og hvad den skal bruges til hvor langt man vil gå... (som du selv nævner)

...og nej dit script virker ikke :o) [xp sp2 ff 2.0.0.2:]

function isValidAsEmail(txt){
  return !!txt.match(/^.*@\w[\w\.-]\.[a-z]{2,6}$/);
}
alert( isValidAsEmail("mail@hotmail.dk") ) => false
Avatar billede roenving Novice
08. juni 2007 - 16:49 #6
Argh, der mangler jo en quantifier:

return !!txt.match(/^.*@\w[\w\.-]*\.[a-z]{2,6}$/);
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