Avatar billede para7 Nybegynder
09. april 2009 - 20:06 Der er 9 kommentarer og
1 løsning

Stoppe ugyldige tegn med RegExp

Jeg har fundet frem til en funktion, jeg har ombygget lidt til at skulle kunne validere om en bruger skriver ugyldige tegn, når denne vælger et subdomæne ID. Men funktonen returnerer altid false. Nogen der har løsningen? Jeg vil altså undgå at brugere vælger ugyldige internetgældende tegn.

Function ValidateSubDomID(strSubDomID)
  Dim re
  Set re = new RegExp

  re.IgnoreCase = true
  re.global = false

  re.Pattern = "^(?=.*?\d)[a-z][a-z0-9]{5,7}$"
  're.Pattern = "a-zA-Z0-9_"
  're.Pattern = "\\\\([a-zA-Z0-9_]*)\\.(doc|pdf|gif|jpg)$"

  ValidateSubDomID = re.Test(strSubDomID)
End Function

response.Write ValidateSubDomID(request.form("FirmaID"))
response.end
Avatar billede erikjacobsen Ekspert
09. april 2009 - 23:18 #1
Hvad er et lovligt subdomæne for dig?
Avatar billede para7 Nybegynder
10. april 2009 - 11:53 #2
Det er almene internetgyldige tegn tilladte tegn for domæner incl. bindestreg og underscore. Jeg fandt tre "formler", men der er noget galt siden der returneres false hele tiden.
Avatar billede erikjacobsen Ekspert
10. april 2009 - 13:58 #3
"almene internetgyldige" ... - kan du ikke præcist sige hvad du vil have dit subdomænenavn til at være, og ikke være?
Avatar billede para7 Nybegynder
10. april 2009 - 18:56 #4
OK, a-z, A-Z, 0-9, -,. og _
Ellers kan jeg måske lære at sftertilpasse den ellers ret kryptiske opbyggede streng selv. Behøves ikke være perfekt:)
Avatar billede erikjacobsen Ekspert
10. april 2009 - 19:38 #5
Ok - hvor mange tegn må der mindst og højst være? Er der nogle regler for hvad den må begynde med?

Du siger "ret kryptiske opbyggede streng" ... det er et regulært udtryk. Du har kopieret noget uden at vide hvad det betyder?
Avatar billede para7 Nybegynder
11. april 2009 - 16:17 #6
Formfeltet er sat til et max på 14 tegn, så det er i forvejen begrænset. Ja, jeg kan endnu ikke se logikken. Strengene er bare nogle eksempler jeg googlede mig til. Så bare kom med et bud, og jeg prøver det af...
Avatar billede erikjacobsen Ekspert
11. april 2009 - 17:01 #7
Jeg vil gerne komme med et bud, men hvilke regler har du?

Skal det være 1-14 tegn af a-z, A-Z, 0-9, -,. og _
Avatar billede para7 Nybegynder
11. april 2009 - 17:10 #8
Ja det vil være udemærket, tror jeg, jeg kan godt se man bliver nødt til at vide ret præcis hvad man ønsker først.
Avatar billede erikjacobsen Ekspert
11. april 2009 - 17:25 #9
Så skulle du kunne lave det med

  re.Pattern = "^[a-z0-9._-]{1,14}$"
Avatar billede para7 Nybegynder
11. april 2009 - 18:24 #10
Jammen det virker jo perfekt. Nærmest som en magisk formel. Tak og tak for pointene :)
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