Avatar billede zombien Juniormester
04. juni 2007 - 15:34 Der er 4 kommentarer og
1 løsning

Udlukkelse af specialtegn

Hejsa...

I henblik på et af mine gamle spørgsmål herinde
http://www.eksperten.dk/spm/758068

fik jeg denne funktion, til at tjekke om e-mail havde en korrekt syntax

Function Mailtegn(email)
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "^[a-z0-9\.\-\_]+\@[a-z0-9\.\-]+\.(dk|com|net|org|info|biz|name|us|" &_
"ac|ag|as|at|be|cc|ch|uk|fm|gs|io|it|jp|li|lt|lv|ms|nu|pl|ro|se|sh|tc|tf|tm|to|vg|de|fr|no)$"
mailtegn = regEx.Test(email)
Set regEx = Nothing
End Function

denne fungere ganske fino til at tjekke e-mails
men nu sidder jeg lige p.t. og arbejder med et loginscript
hvor jeg ikke vil have special tegn i brugernavn eller kode...
det skal sådan set kun være muligt at skrive a-å 0-9 samt - og _
så derfor har jeg forsøgt at rette lidt i denne funktion..

Function Brugertegn(bruger)
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "^[a-z0-9\-\_]$"
brugertegn = regEx.Test(bruger)
Set regEx = Nothing
End Function

men når jeg endelig bruger denne funktion, melder den hele tiden false, ligemeget om jeg kun skriver aaaaaa

hvad har jeg gjort forkert i denne funktion
Avatar billede ellebaek Nybegynder
05. juni 2007 - 09:54 #1
det er fordi du kun tjekker et bogstav, som jeg lige ser det...

Function Brugertegn(bruger)
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "^[a-z0-9\-\_]+$"
Brugertegn = regEx.Test(bruger)
Set regEx = Nothing
End Function

ved at sætte +'et på til sidst, (burde betyde 1 eller flere) skulle du gerne tjekke hele strengen...
Avatar billede zombien Juniormester
05. juni 2007 - 10:21 #2
Jamen det ser jo ud til at virke ganske korrekt nu :-D
men det er korrekt den udlukker tegn som #%&<> osv. ikke???
Avatar billede zombien Juniormester
05. juni 2007 - 14:51 #3
okay, nu fik jeg den anden form til at virke, mange tak for det ellebaek :-)
men så tænkte jeg, nu man alligevel skal være smart, om man så ikke kunne bruge funktionen til at verify en dato...

så har lavet et felt, hvor man skal skrive sin fødelsesdag ala. sådan 29.08.1984
det er jo så 10 tegn ialt, så derfor er der bleven smidt en if len(bday) <> 10 then
for at sikre, man slet ikke skriver mere

men har nu ændret lidt i den tidligere kontrol funktion igen

Function bdaytegn(bday)
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Pattern = "^(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|" &_
"21|22|23|24|25|26|27|28|29|30|31)+\.(01|02|03|04|05|06|07|08|09|10|11|12)+\.[0-9]$"
bdaytegn = regEx.Test(bday)
Set regEx = Nothing
End Function

så den ser sådan her ud :-D så den tjekker de informationer som står i feltet...
for så skal man jo have 2 tegn før et punktum, 2 tegn før nummer 2 punktum... og 4 efter det andet punktum...

men ligemeget hvad jeg gør... mener den min dato er ugyldig...
Avatar billede ellebaek Nybegynder
05. juni 2007 - 16:41 #4
Det er måske en lille smule overkill at lave en regexp funktion til det :-)

Du kan bare sige:

if not isDate(bDay) then
response.write "ikke en dato"
end if

Det er lidt nemmere, og har i sidste ende samme effekt :-)
Avatar billede erikjacobsen Ekspert
05. juni 2007 - 16:46 #5
regEx.Pattern = "^(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|" &_
"21|22|23|24|25|26|27|28|29|30|31)+\.(01|02|03|04|05|06|07|08|09|10|11|12)+\.[0-9]{4}$"
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