Avatar billede neocron Nybegynder
26. juli 2007 - 17:36 Der er 4 kommentarer

RegExp virker ikke perfekt

Hejsa,

Jeg søger lidt fundamental hjælp til dette da jeg er gået igang med at benytte dem ifbm. VB.net, og her har jeg tilsyneladende lidt vanskeligheder med at få det til at virke 100%. Lige nu virker den 50%, og det må da siges at være en start.

Først og fremmest - er denne RegExp korrekt?
[a-zA-Z]{3,4}

(Den skal godtage et brugernavn på enten 3 eller 4 bogstaver (a-z), både små og store bogstaver og intet andet)

Grunden til jeg spørger er at jeg har læst en tutorial hvor at {3,4} skulle begrænse input til 3,4 tegn, men det lader til at den ignorerer begrænsningen fuldstændigt. Den accepterer "aaaaaaaa" såvel som "aaa".

Jeg kan fint implementere den med:
preg_match("/([a-zA-Z]{3,4})/", $brugernavn); og her virker den (dog med undtagelsen af problemet nævnt ovenover)

Jeg har præcis det samme problem hvis jeg forsøger at benytte selvsamme RegExp i VB.net, jvf. denne kode:

Dim uCheck As New Regex("[a-zA-Z]{3,4}", RegexOptions.Singleline)
If uCheck.IsMatch(ctUsername) Then
  MsgBox "test - ok"
Else
  MsgBox "test - fejl"
End If

Med min ringe viden om Reg Exp er det sikkert mig der laver fejl et sted, men jeg håber at nogle af jer kan hjælpe med at påpege fejlen(e) :)
Avatar billede ranglen Nybegynder
26. juli 2007 - 17:42 #1
[a-zA-Z]{3,4}

betingelsen er opfyldt, blot den kombination er til stedet et sted i strengen. Hvis der ikke må være noget før og efter, skal du starte med ^ og slutte med $

^[a-zA-Z]{3,4}$
Avatar billede ranglen Nybegynder
26. juli 2007 - 17:44 #2
RegexOptions.Singleline behøver du ikke bruge. Den benyttes når du har input med linieskift, og benytter punktum som wilcard (den matcher pr default ikke linjeskift)
Avatar billede neocron Nybegynder
26. juli 2007 - 22:41 #3
Yderest interessant. Jeg skal vist tilbage og gennemlæse det materiale jeg har gang i, en gang mere. ^[a-zA-Z]{3,4}$ er måden det gøres på. Mange tak for hjælpen.
Vil du smide et svar?
Avatar billede montago Praktikant
28. september 2007 - 18:32 #4
Smid nu det svar !!
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