Avatar billede Slettet bruger
26. november 2006 - 20:09 Der er 11 kommentarer og
1 løsning

Tjek om der er stjerne i brugernavn?

Hey eksperter..

Jeg skal bruge en script som kan tjekke om der er en * (stjerne) i et brugernavn under oprettelse.

Altså:

If "Brugernavn indeholder *" then
  bla bla bla
else
end if


Hjælp ?
Avatar billede softspot Forsker
26. november 2006 - 20:11 #1
If instr(Brugernavn, "*") > 0 then
  bla bla bla
else
end if
Avatar billede Slettet bruger
26. november 2006 - 20:24 #2
hvad så med:

If "Brugernavn indeholder * eller / eller ( eller ) eller.." then
  bla bla bla
else
end if

Hvilke tegn er det at man skal holde væk fra brugernavne? hvis det skal være praktisk?
Avatar billede softspot Forsker
26. november 2006 - 20:35 #3
Du kan lave en streng med tilladte tegn og gennemløbe den med en løkke:

fejlkode = 0
tilladteTegn = "ABCDEFGHIJHKLMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
for i = 1 to len(brugernavn)
  if instr(mid(brugernavn, i, 1), tilladteTegn) = 0 then
    fejlkode = 1
    ' ikke tilladt - så fejlmeld!
  end if
next

if fejlkode = 0 then
  ' brugernavnet indeholder kun gyldige tegn...
end if
Avatar billede softspot Forsker
26. november 2006 - 20:38 #4
Mere elegant ville det jo være med en Regular Expression:

set re = new RegExp
re.Pattern = "[a-z0-9]"
re.Global = true
re.IgnoreCase = true
 
' Undersøg om der er nogle ugyldige tegn i brugernavnet
brugernavnGyldig = re.Test(brugernavn)

if brugernavnGyldig then
  ' brugernavnet indeholder kun gyldige tegn...
end if
Avatar billede softspot Forsker
26. november 2006 - 20:40 #5
Mønsteret skal muligvis ændres til:

re.Pattern = "[a-z0-9]{1,}"

så der kan være fra 1 til flere af de specificerede tegn i brugernavnet.
Avatar billede softspot Forsker
26. november 2006 - 20:41 #6
...og i virkeligheden skulle man måske også sikre sig at der ikke forekommer andet i brugernavnet end disse tegn, således (skulle jeg mene):

re.Pattern = "^[a-z0-9]{1,}$"
Avatar billede Slettet bruger
26. november 2006 - 22:24 #7
Mange tak softspot.. Brugte bare den første for den forstår jeg bedst :P..

Svar?
Avatar billede softspot Forsker
26. november 2006 - 22:41 #8
Velbekomme :)

Jeg er heller ikke helt stiv i RegEx, så det var bare for at illustrere at der også var en mulighed der :)
Avatar billede Slettet bruger
28. november 2006 - 14:44 #9
Arh.. jeg havde lige glemt at teste det ordenligt... Nu skriver den at der er ugyldige tegn uanset hvad?..

Min kode:

brugernavn = request.Form("Brugernavn")

fejlkode = 0
tilladteTegn = "ABCDEFGHIJHKLMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-"
for i = 1 to len(brugernavn)
  if instr(mid(brugernavn, i, 1), tilladteTegn) = 0 then
    fejlkode = 1
    ' ikke tilladt - så fejlmeld!
  end if
next

if fejlkode = 1 then
  Response.Redirect("Opretbruger.asp?fejl=Der er ugyldige tegn i brugernavnet!")
end if
Avatar billede softspot Forsker
28. november 2006 - 15:01 #10
Sorry - min fejl. Det skal være således:

for i = 1 to len(brugernavn)
  if instr(1, tilladteTegn, mid(brugernavn, i, 1)) = 0 then
    fejlkode = 1
    ' ikke tilladt - så fejlmeld!
  end if
next
Avatar billede Slettet bruger
28. november 2006 - 15:15 #11
Så nu virker det mange tak. :)...

Var ved at stykke min egen lidt besværligere løsning sammen, men jeg holder mig bare til din da den virker 100% nu ;) :

'Brugernavnstegn = Split(brugernavn, "")
'Ugyldigetegn = "!#¤%&/()=?@£$€{[]}><\*~¨^´`"
'arrUgyldigetegn = Split(Ugyldigetegn, "")

'for t = LBound(Brugernavnstegn) to UBound(Brugernavnstegn)
    'for i = LBound(arrUgyldigetegn) to UBound(arrUgyldigetegn)
        'If instr(Brugernavnstegn(t), arrUgyldigetegn(i)) > 0 then
    '    Response.Redirect("Opretbruger.asp?fejl=Der er ugyldige tegn i brugernavnet!")
        'else
        'end if
    'next
'Next
Avatar billede softspot Forsker
28. november 2006 - 15:36 #12
Velbekomme og tak for point :)

En kommentar til arrays i VBScript: det kan ikke betale sig at kalde LBound på arrays i VBS, da de altid starter ved indeks 0, så man kan bare køre sine løkker fra 0 til ubound(arrayet). Dette er primært et performancespørgsmål og der er ikke noget ugyldigt i at lave kaldet - men det er som sagt unødvendigt :)
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