Avatar billede morten_soegaard Nybegynder
29. april 2005 - 12:48 Der er 8 kommentarer og
1 løsning

Regexp spørgsmål?

Hej

Jeg skal bruge lidt hjælp til min validerings funktion.

Jeg har brug for nogel patterns.

1. En som kun tillader tal
2. En som kun tillader bogstaver (a-å)
3. En som tillader alt, både bogstaver, tal, mellemrum

Det andet er til min funktion. Koden ser således ud:

Function checkInput(inputstreng)
set regcon = new RegExp
regcon.pattern = "^[B-Zb-z0-9.+-/_]+$"
regcon.ignoreCase = true
checkInput = regcon.Test(inputstreng)
End Function

Men når jeg har nogle forskellige patterns vil jeg ikke til at lave en funktion for dem hver. Kan det ikke lade sig gøre at lave det sådan at man skriver

checkInput(inputstreng,pattern)

Men hvordan skal det stå i funktionen så?

Håber i kan hjælpe.

Mvh Morten
Avatar billede mikkelk Nybegynder
29. april 2005 - 12:52 #1
Funktionsopbygningen kunne være:

Function checkInput(inputstreng, tjekPatern)
set regcon = new RegExp
select case tjekPatern
  case "tal"
      regcon.pattern = Patern for rene tal
  case "bogstaver"
      regcon.pattern = Patern for rene bogstaver
  case "alt"
      regcon.pattern = Patern for alt
end select
regcon.ignoreCase = true
checkInput = regcon.Test(inputstreng)
End Function

eks.
checkInput(dinTekstStreng, "tal") -> Tjekker for rene tal

Dine paterns må en anden lige komme med :-)
Avatar billede morten_soegaard Nybegynder
29. april 2005 - 12:56 #2
Okay, det var dejligt. Men hvad med nede i checkInput = regcon.Test(inputstreng) skal der ikke stå checkInput = regcon.Test(inputstreng, tjekpatern)?
Avatar billede yellow Nybegynder
29. april 2005 - 12:58 #3
Function checkInput(inputstreng,pattern)
  set regcon = new RegExp
  regcon.pattern = pattern
  regcon.ignoreCase = true
  checkInput = regcon.Test(inputstreng)
End Function

patKunTal = "^\d+$"          'tillader kun 1 eller flere tal
patKunBog = "^[a-zæøå]+$"    'tillader kun 1 eller flere bogsgaver
patTalBog = "^[a-zæøå\d ]+$" 'tillader kun 1 eller flere tal,bogstaver eller mellemrum


Response.Write checkInput("1234",patKunTal  )
Response.Write checkInput("123a",patKunTal  )

Response.Write checkInput("abcd",patKunBog  )
Response.Write checkInput("abc1",patKunBog  )

Response.Write checkInput("ab 12",patTalBog  )
Response.Write checkInput("ab=12",patTalBog  )
Avatar billede mikkelk Nybegynder
29. april 2005 - 13:09 #4
:-) Fair nok... Jeg ville nok bare bruge yellows - den er vist lidt enklere.
Avatar billede morten_soegaard Nybegynder
29. april 2005 - 13:10 #5
Det virker skam! Jeg tror jeg bruger yellew's metode.
Avatar billede morten_soegaard Nybegynder
29. april 2005 - 13:18 #6
Ja det gør det nemlig :)

Jeg siger tak - I må lige begge ligge et svar
Avatar billede mikkelk Nybegynder
29. april 2005 - 13:31 #7
Lad du bare Yellow få pointene.
Jeg kunne jo kun svare delvist på halvdelen af spørgsmålet, så det går nok :-)
Avatar billede morten_soegaard Nybegynder
29. april 2005 - 14:15 #8
Det er op til dig.
Avatar billede yellow Nybegynder
29. april 2005 - 14:19 #9
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