Avatar billede md_craig Nybegynder
22. september 2003 - 21:08 Der er 23 kommentarer og
1 løsning

Email Validerings Function

Jeg har får fået lavet mig en lille Email validerings ting, bare ved at tjecke om en streng indeholde tegn efte andre osv... (Lidt sløret, men det er ikke vigtigt)

Men for at gøre det en tand næmere for mig selv frem over at smide det på folks sider, ville jeg gerne have en funktion...

Jeg kunne jo nok lave det selv, men Det er jo med garanti lavet før, så hvorfor have besværet, og hovedbrudet ???

Nogen der har sådan en funktion liggende, eller ved hvor den kan findes ???
Avatar billede virus Nybegynder
22. september 2003 - 21:12 #1
Function IsEmail(strEmail)
        Set rx = New RegExp
        rx.Global = True
        rx.IgnoreCase = True
        rx.Pattern = "^[a-z0-9\.\-_]+@[a-z0-9\-\.]+\.[a-z]{2,4}$"
        bolIsEmail = rx.Test(strEmail)
        rx.Pattern = "(^[-\.]+|(-|_\.)(@|\.)|(@|\.)(-|_\.))+"
        bolIsEmail = bolIsEmail And Not rx.Test(strEmail)

        IsEmail = bolIsEmail
    End Function
Avatar billede medions Nybegynder
22. september 2003 - 21:14 #2
En bedere end denne findes næsten ikke!

<%
Dim V_ValiderEmail, V_Snabler, V_UgyldigeDomaener, V_Domaene, V_GyldigeEndelser, V_GyldigEndelse, V_Endelse, V_Ekskluder, V_i, V_Status

Function Valider(V_ValiderEmail)

    Valider            = True
    V_ValiderEmail    = LCase(V_ValiderEmail)
   
    ' (1) Check laengde '-----------------------------------------------------------------------
   
    If Len(V_ValiderEmail) < 5 Then
        Valider    = False
        V_Status    = "E-mail adressen er for kort."
        Exit Function
    End If

    ' (2) Skal indeholde @ '--------------------------------------------------------------------
   
    If InStr(V_ValiderEmail,"@") = 0 Then
        Valider    = False
        V_Status    = "Der mangler et ""@"" i e-mail adressen."
        Exit Function
    End If

    ' (3) Undgaa "@." og ".@" '-----------------------------------------------------------------
   
    If ((InStr(V_ValiderEmail,"@.") <> 0) OR (InStr(V_ValiderEmail,".@") <> 0)) Then
        Valider    = False
        V_Status    = "Der må ikke være et punktum lige op af et ""@"" i e-mail adressen."
        Exit Function
    End If

    ' (4) Check om der er noget foran @ '-------------------------------------------------------
   
    If Len(Left(V_ValiderEmail,InStr(V_ValiderEmail,"@") - 1)) = 0 Then
        Valider    = False
        V_Status    = "Der mangler noget foran ""@"" i e-mail adressen."
        Exit Function
    End If

    ' (5) Minimum 1 "." '-----------------------------------------------------------------------

    If InStr(V_ValiderEmail,".") = 0 Then
        Valider    = False
        V_Status    = "En e-mail adresse indeholder mindst eet punktum."
        Exit Function
    End If

    ' (6) Max 3 tegn efter sidste "." '---------------------------------------------------------

    If (Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,".") > 3) Then
        Valider    = False
        V_Status    = "Der er for mange tegn efter sidste punktum i e-mail adressen."
        Exit Function
    End If

    ' (7) Undgaa ".." '-------------------------------------------------------------------------

    If InStr(V_ValiderEmail,"..") <> 0 Then
        Valider    = False
        V_Status    = "Der mŒ ikke være to punktummer lige op af hinanden i e-mail adressen."
        Exit Function
    End If

    ' (8) Min 2 tegn efter sidste "." '---------------------------------------------------------

    If (Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,".") < 2) Then
        Valider    = False
        V_Status    = "Der skal være mindst to tegn efter sidste punktum i e-mail adressen."
        Exit Function
    End If

    ' (9) Ingen "_" efter "@" '-----------------------------------------------------------------

    If ((InStr(V_ValiderEmail,"_") <> 0) AND (InStrRev(V_ValiderEmail,"_") > InStrRev(V_ValiderEmail,"@"))) Then
        Valider    = False
        V_Status    = "Der må ikke være en underscore (_) efter ""@""."
        Exit Function
    End If

    ' (10) Tjek for flere "@" '-----------------------------------------------------------------

    V_Snabler = 0

    For V_i = 1 TO Len(V_ValiderEmail)
        If Mid(V_ValiderEmail,V_i,1) = "@" Then
            V_Snabler = V_Snabler + 1
        End If
    Next

    If V_Snabler > 1 Then
        Valider    = False
        V_Status    = "E-mail adressen indeholder for mange ""@""."
        Exit Function
    End If

    ' (11) Check V_Domaene ud fra array '-------------------------------------------------------

    V_UgyldigeDomaener    = Array("hotmai.com","yahho.dk","hotmaile.com","mail1stofanet.dk","ofri.dk","post1.dk","post2.dk","post3.dk","post4.dk","post5.dk","post6.dk","post7.dk","post8.dk","fc.skolekom.dk","post9.dk","hommail.com","jupiipost.dk","forom.dk","furom.dk","frorum.dk","mail.forum.dk","mailforum.dk","forum.mail.dk","sol.ak","guld.dk","hormail.com","wanacoo.dk","sol.mail.dk","mail.tel.dk")
    V_Domaene                = Right(V_ValiderEmail,(Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,"@")))

    For V_i = 0 TO UBound(V_UgyldigeDomaener)
        If V_Domaene = V_UgyldigeDomaener(V_i) Then
            Valider    = False
            V_Status    = "E-mail adressens domæne er ugyldigt."
            Exit Function
        End If
    Next

    ' (12) Tjek om TLD'en er korrekt '----------------------------------------------------------

    V_GyldigEndelse    = False
    V_GyldigeEndelser    = Array("dk","com","edu","gov","int","mil","net","org","af","al","dz","as","ad","ao","ai","aq","ag","ar","am","aw","ac","au","at","az","bs","bh","bd","bb","by","be","bz","bj","bm","bt","bo","ba","bw","bv","br","io","bn","bg","bf","bi","kh","cm","ca","cv","ky","cf","td","cs","cl","cn","cx","cc","co","km","cg","ck","cr","ci","hr","cu","cy","cz","dj","dm","do","tp","ec","eg","sv","gq","er","ee","et","fk","fo","fj","fi","fr","gf","pf","tf","ga","gm","ge","de","gh","gi","gr","gl","gd","gp","gu","gt","gg","gn","gw","gy","ht","hm","va","hn","hk","hu","is","in","id","ir","iq","ie","im","il","it","jm","jp","je","jo","kz","ke","ki","kp","kr","kw","kg","la","lv","lb","ls","lr","ly","li","lt","lu","mo","mk","mg","mw","my","mv","ml","mt","mh","mq","mr","mu","yt","mx","fm","md","mc","mn","ms","ma","mz","mm","na","nr","np","nl","an","nc","nz","ni","ne","ng","nu","nf","mp","no","om","pk","pw","ps","pa","pg","py","pe","ph","pn","pl","pt","pr","qa","re","ro","ru","rw","kn","lc","vc","ws","sm","st","sa","sn","sc","sl","sg","sk","si","sb","so","za","gs","es","lk","sh","pm","sd","sr","sj","sz","se","ch","sy","tw","tj","tz","th","tg","tk","to","tt","tn","tr","tm","tc","tv","ug","ua","ae","gb","uk","us","um","uy","su","uz","vu","ve","vn","vg","vi","wf","eh","ye","yu","cd","zm","zr","zw")
    V_Endelse            = Right(V_ValiderEmail,(Len(V_ValiderEmail) - InStrRev(V_ValiderEmail,".")))

    For V_i = 0 TO UBound(V_GyldigeEndelser)
        If V_Endelse = V_GyldigeEndelser(V_i) Then
            V_GyldigEndelse = True
            Exit For
        End If
    Next
   
    If NOT V_GyldigEndelse Then
        Valider    = False
        V_Status    = "Domæne endelsen (f.eks. "".dk"" el. "".com"") er ikke korrekt."
        Exit Function
    End If

    ' (13) Check hver enkelt tegn '-------------------------------------------------------------

    For V_i = 1 TO Len(V_ValiderEmail)
        If NOT IsNumeric(Mid(V_ValiderEmail,V_i,1)) AND (LCase(Mid(V_ValiderEmail,V_i,1)) < "a" OR LCase(Mid(V_ValiderEmail,V_i,1)) > "z") AND Mid(V_ValiderEmail,V_i,1) <> "_" AND Mid(V_ValiderEmail,V_i,1) <> "." AND Mid(V_ValiderEmail,V_i,1) <> "@" AND Mid(V_ValiderEmail,V_i,1) <> "-" Then
            Valider    = False
            V_Status    = "E-mail adressen indeholder et eller flere ugyldige tegn."
            Exit Function
        End If
    Next

    ' (14) Adresser der skal ekskluderes (grundet SPAM el. lign.) '-----------------------------

    V_Ekskluder    = Array("rune@medions.dk", "daniel@server02.dk", "anders@and.dk", "test@test.dk", "test@test.com")

    For V_i = 0 TO UBound(V_Ekskluder)
        If V_ValiderEmail = V_Ekskluder(V_i) Then
            Valider    = False
            V_Status    = "Der kan ikke sendes til den valgte adresse da den er ekskluderet pga. misbrug."
            Exit Function
        End If
    Next

End Function

//>Rune
Avatar billede virus Nybegynder
22. september 2003 - 21:16 #3
Hold da kæft en gang xxxx
Avatar billede eagleeye Praktikant
22. september 2003 - 21:16 #4
lol...
Avatar billede medions Nybegynder
22. september 2003 - 21:18 #5
*G* fin ikke? :-D
Den indeholder sq næsten alt :-D

//>Rune
Avatar billede md_craig Nybegynder
22. september 2003 - 21:35 #6
Hvis den virker Medions, så er du fandeme syg... ;oP
Se den kunne jeg ikke have lavet selv, nok mest fordi jeg ikke viste der var SÅ mange regler ved Email...
Avatar billede medions Nybegynder
22. september 2003 - 21:38 #7
*G*, tro mig, den virker perfekt! -Jeg har brugt den i utallige scripts, og aldrig har der været et enkelt problem med den, den spiller bare 100!

Virus> Jeg ser der ikke skrive sådan en omgang bullshit igen vel?

//>Rune
Avatar billede md_craig Nybegynder
22. september 2003 - 21:44 #8
Jeg går ud fra den retunere True eller False ??? (Strengen Valider)
Og så V_Status...
Eller hvordan ???

Det er lige lidt sent på dagen til jeg umiddelbart kan gennemskue den...
Avatar billede medions Nybegynder
22. september 2003 - 21:47 #9
Yepzer :)

Thx 4 Poinz

//>Rune
Avatar billede virus Nybegynder
22. september 2003 - 21:57 #10
#medions
Så længe jeg ser xxxx af den grad, ytre jeg min fuldkomne neutrale mening omkring det....

Du må selv indrømme at du sagtens ville kunne replace den omgang med et small shell script, eller even en gang reg.exp
Avatar billede medions Nybegynder
22. september 2003 - 21:59 #11
virus> Det kan man da i hvert fald ikke! -Prøv du at vis mig et script som kan erstatte alle de funktioner som mit script det kan!?

//>Rune
Avatar billede virus Nybegynder
22. september 2003 - 22:04 #12
#Rune
Vil du satse alle dine points på et sådanne vædemål? :o)
Avatar billede virus Nybegynder
22. september 2003 - 22:05 #13
vædDemål, jeg må til at sove :o(
Avatar billede md_craig Nybegynder
22. september 2003 - 22:22 #14
Tja... Det ville da være fedt om den kunne gøres mere simpel, Eller hvis vi var i ASP.NET...

Da det da er noget af en smøre... i ASP.NET kunne vi bare lave en Class til den... for sig selv... og gæmme den LANGT LANGT væk.. ;oP

Men Fuck da det... Lig den i en .Inc fil eller hvad man nu finder på, og gem den væk på den måde... så virker det fint...
Avatar billede md_craig Nybegynder
22. september 2003 - 22:23 #15
PS... God fornøjelse med det vædemål. post endelig resultatet hvis det lykedes at gøre den kortere... det kan vi jo alle bruge...

Og tja hvad kan vi ellers sige ???
God nat, og tak for i dag folks...
;o)
Avatar billede medions Nybegynder
22. september 2003 - 22:23 #16
;o)

//>Rune
Avatar billede virus Nybegynder
22. september 2003 - 22:33 #17
#md_craig
Du kan da bare smække en class i ASP op, rigtigt vi ikke kan lege med dll filer men who cares *G*

#Rune
Sir' du? :o)
Avatar billede virus Nybegynder
22. september 2003 - 22:36 #18
#md_craig
<ot>Brug NEVER include filer som de er påtænkt (.inc) medmindre jeres sysadm har slået urlscan til og disablet .inc som worldreadable extension!!</ot> :o)
Avatar billede medions Nybegynder
22. september 2003 - 22:38 #19
virus> ?

//>Rune
Avatar billede virus Nybegynder
22. september 2003 - 22:57 #20
#Rune
nm
Avatar billede medions Nybegynder
22. september 2003 - 22:59 #21
nm?
Avatar billede virus Nybegynder
22. september 2003 - 23:03 #22
#Rune
nm er en forkortelse for nevermind :o)
Avatar billede eagleeye Praktikant
23. september 2003 - 00:48 #23
Jeg har først læst denne igennem nu ;)

Er du stadig frisk på at vædde medions?

Jeg vover pelsen og vil også påstå den kan laves mindre eksvis ved brug af regular expressions. Dog vil den ikke udspecificere så præcist som dette:
V_Status    = "Der må ikke være en underscore (_) efter ""@""."
men bare at email adressen er ugyldig.

den vil også havde top domæne tjek (dk,com,net) og ugyldige domæner, samt spam adresser.
Avatar billede md_craig Nybegynder
23. september 2003 - 09:09 #24
virus >>>

Så længe du kan smide dem i en ikke Webdelt mappe er det ligemeget...
Men ellers jo, så kan alt Script hentes hvis man lagre det inc, derfor lagre jeg det normalt som .ASP, men lige i dette tilfælde gør det ikke så meget
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