Avatar billede hostgirl Nybegynder
06. april 2007 - 20:05 Der er 9 kommentarer og
1 løsning

Regular Expression - Kun bogstaver og tal?

Hej

Jeg sidder med et problem med regexp som overskriften så fint beskriver. Det jeg har brug for er, en funktion, der giver true/false alt efter om inputet indeholder ulovlige tegn.

Et ekspempel for forståelsesn skyld.

GetValidInput("***//\\HEJ")    Den skal returnere False

GetValidInput("HEJqwq223213")    Den skal returnere True

Min funktion som jeg har nu, ser således ud, og den fungere ikke helt efter hensigten, men benytter også Replace, og skal nok erstattes med andet.

Function GetValidInput(string)

Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = "/^[A-Za-z0-9]$/"
.IgnoreCase = True
.Global = True
End With

GetValidInput = RegularExpressionObject.Replace(string, "")
Set RegularExpressionObject = Nothing

End Function

Nogen der kan gives et hint eller en løsning?

På forhånd tak.
Avatar billede erikjacobsen Ekspert
06. april 2007 - 20:07 #1
Pattern = "/^[a-z0-9]+$/"
og så bruge match (jeg kan ikke lige huske syntaksen)
Avatar billede erikjacobsen Ekspert
06. april 2007 - 20:10 #2
Formentlig:

Function GetValidInput(string)

Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = "/^[a-z0-9+]$/"
.IgnoreCase = True
.Global = True
End With

GetValidInput = RegularExpressionObject.Match(string).success
Set RegularExpressionObject = Nothing

End Function
Avatar billede erikjacobsen Ekspert
06. april 2007 - 20:13 #3
Ah, det var da vist klippet fra noget VB.NET - det skal vist være


GetValidInput = RegularExpressionObject.Test(string)
Avatar billede hostgirl Nybegynder
06. april 2007 - 20:40 #4
Min funktion:

Function GetValidInput(string)

Set RegularExpressionObject = New RegExp

With RegularExpressionObject
.Pattern = "/^[a-z0-9+]$/"
.IgnoreCase = True
.Global = True
End With

GetValidInput = RegularExpressionObject.Test(string)
Set RegularExpressionObject = Nothing

End Function

Problemet er nu bare at den returnere false ligemeget input. Om det er tal, tegn eller bogstaver. :(
Avatar billede erikjacobsen Ekspert
06. april 2007 - 21:03 #5
Ja, vi skal lige have sat plusset rigtigt - min fejl

.Pattern = "/^[a-z0-9]+$/"
Avatar billede hostgirl Nybegynder
07. april 2007 - 12:01 #6
Den returnere stadig false, uanset input.. Har prøvet med kun bogstaver eller tal og give samme udfald
Avatar billede hostgirl Nybegynder
07. april 2007 - 12:12 #7
Jeg fik det løst, / og / skulle ikke med.  :) smid svar
Avatar billede erikjacobsen Ekspert
07. april 2007 - 12:17 #8
Nå, ja, det er jo bare gammeldags vbscript. Jeg samler slet ikke på point, tak.
Avatar billede hostgirl Nybegynder
07. april 2007 - 12:25 #9
oki, så kvittere jeg med lidt karma istedet :)
Avatar billede erikjacobsen Ekspert
07. april 2007 - 13:15 #10
Jeg samler heller ikke på karma, tak.
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