Avatar billede mortency Nybegynder
11. februar 2004 - 16:54 Der er 8 kommentarer og
2 løsninger

Check av streng

Jeg skal sjekke en streng som har 2 bokstaver og 5 tegn.
Det skal ikke kunne ha 15AS155 men kun to bokstaver så fem bokstaver.
<%
strRegnr = "AB15467"

'Sjekker lengden
If Len(strRegnr) <> 7 Then
error = error & "- Det må være 7 tegn i regnr!"
End if

%>
Avatar billede The Real Yoda Juniormester
11. februar 2004 - 17:00 #1
Kunne gøres sådan:

fejl=0
for xpos=1 to 7
  if xpos<3 then
    if isnumeric(Mid(strRegnr, xpos,1)) then fejl=1
  end if
  if xpos>2 then
    if not isnumeric(Mid(strRegnr, xpos,1)) then fejl=1
  end if
next
Avatar billede eagleeye Praktikant
11. februar 2004 - 17:19 #2
Alternativt lav det med regular expression, her en funtion som tjekker det:

function check(inputstreng)
dim regcon
set regcon = new RegExp
regcon.ignoreCase = true
regcon.Global = true
regcon.pattern = "^([a-zæøå]{2}\d{5})$"
check = regcon.test(inputstreng)
end function


og så bruge den sådan her:

str = "AB15467"
if not check(str) then
  'Forkert format at str
end if
Avatar billede mortency Nybegynder
11. februar 2004 - 17:22 #3
// Hva lønner seg å bruke når den skal sjekke ca 200-400 strenger samtidig? I hennhold til optimalisert script????
Avatar billede The Real Yoda Juniormester
11. februar 2004 - 17:27 #4
det tror jeg at jeg vil overlade til eagleeye at svare på den ..
Avatar billede eagleeye Praktikant
11. februar 2004 - 17:34 #5
Det ved jeg næsten ikke men det therealyoda har vist skal der lidt mere om sådan den tjekke længden er 7 :)

men hvis det er for at optimere kan man lave det uden funtion sådan man ikke oprettter og nedlægger reqexp objectet 200-400 gange men kun gør det en gang og kun en gang sætte pattern op.:


<%
dim regcon
set regcon = new RegExp
regcon.ignoreCase = true
regcon.Global = true
regcon.pattern = "^([a-zæøå]{2}\d{5})$"

do whiler not rs.EOF
  if regcon.test(rs("kolonne")) then
    'OK
  end if
  rs.Movenext
loop

Set regcon = Nothing
Avatar billede The Real Yoda Juniormester
11. februar 2004 - 17:37 #6
Det lader til at det nok er den sidste løsning som eagle-eye har vist, som er den der er smartest at bruge..

forresten eagle : kan du specificere eller linke til noget som forklarer det pattern du har sat ?
Avatar billede eagleeye Praktikant
11. februar 2004 - 17:42 #7
Du kan se noget omkring de her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vspropattern.asp

Men en hurtig forklaring af det pattern: "^([a-zæøå]{2}\d{5})$"
^ betyder match start på streng.
[a-zæøå]  betyder find bogstaver og {2} angiver er skal være 2 bogstaver efter hinaden
\d betyder find et tal og {5} skal der være 5 tal efter finanden
$ betyder match slut på streng.

alt i alt giver det godkend en streng med 2 bogstaver efterfuldt af 5 tal
Avatar billede mortency Nybegynder
11. februar 2004 - 18:15 #8
//Meget bra! Takker for hjelpen. Er det greit at jeg gir Eagleeye 30 point og therealyoda 20 point????

En liten ting til hvis noen av dere gidder! Hvorfor virker ikke dette?

StrAktiv = "JA"

If strAktiv <> "JA" OR strAktiv <> "NEI" Then
error = error & "- FEIL må være JA eller NEI"
End if
Avatar billede The Real Yoda Juniormester
11. februar 2004 - 18:26 #9
OR skal være AND...

giv du bare eagle alle points.. det var hans svar der var guldet :-)
Avatar billede The Real Yoda Juniormester
11. februar 2004 - 19:32 #10
takker for points
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