Avatar billede falslev Nybegynder
10. november 2003 - 12:36 Der er 9 kommentarer og
2 løsninger

Få data til at være ens og pæn

Jeg søger forslag til hvordan man lettest sikre at data bliver korrekt og pænt indtastet.
F.Eks. En bruger indtaster sit navn som:
peter jessen
Systemet laver det selv om til:
Peter Jessen
Avatar billede ldanielsen Nybegynder
10. november 2003 - 12:38 #1
function LeadingCap(strIn)
    arrTemp = Split(strIn, " ")
    LeadingCap = Lcase(arrTemp(0))
    LeadingCap = Ucase(Left(LeadingCap, 1)) & Mid(LeadingCap, 2)
    if Ubound(arrTemp)>0 then
        for i = 1 to Ubound(arrTemp)
            LeadingCap = LeadingCap & " " & arrTemp(i)
        next
    end if
end function
Avatar billede nmh Nybegynder
10. november 2003 - 12:39 #2
Du kan enten vælge at køre et script på klientmaskinen, eller du kan gøre det på serveren.
Er det kun den slags ændringer, der skal laves?
Hvad hvis en bruher kalder sig for Peter "den store" Pedal?
Skal det også rettes?
Avatar billede ldanielsen Nybegynder
10. november 2003 - 12:40 #3
så du skriver fx RS("Navn") = LeadingCap("pEteR jEssen")
Avatar billede nmh Nybegynder
10. november 2003 - 12:45 #4
bruher->bruger
Avatar billede nmh Nybegynder
10. november 2003 - 13:06 #5
Ida>Det virker ikke helt som det skal.
Kun Fornavnet bliver ændret.
Her er et andet forslag:

function f(s)
  dim A,i
  s=Lcase(s)
  A=split(s," ")
  for i=0 to uBound(A)
    t=A(i)
    A(i)=Ucase(Mid(t,1,1)) & Mid(t,2)
  next
  f=join(A," ")
end function

f("peTer sTore jenSen")
har værdien "Peter store Jensen"
Avatar billede nmh Nybegynder
10. november 2003 - 13:14 #6
Hvis du vil gardere dig mod navne som Peter "den store" Pedal
eller p<ter j--n33sen
er du nødt til at lave en funktion, som løber navnet igennem og tester om alle tegn er blandt de tilladte.
Den slags fejl kan systemet ikke selv rette, så her er det nødvendigt at bede brugeren om at taste om.
Her vil det måske være mest praktisk at lade komtrollen foregå på brugerens maskine.
Noget i stil med
<input type=text name="navn" onChange="Kontrol()">
og Kontrol tester nu, om det indtastede kan bruges.
Det kunne selvfølgelig også ske på serveren, men så kulle du sende alt det brugeren havde udfyldt tilbage til rettelse ho brugeren.
Avatar billede falslev Nybegynder
10. november 2003 - 14:16 #7
Jeg havde nu håber på at der fandtes en VB funktion som automatisk start bogstav og alle ord efter mellemrum eller - med stort.
Andre forslag?
Avatar billede nmh Nybegynder
10. november 2003 - 17:58 #8
Men nu har du jo en funktion, der gør det, du ønsker.
Der er grænser for hvor mange specielle VBscript funktioner der er indbygget. Ideen er jo, at man selv laver det, der ikke findes.
Avatar billede falslev Nybegynder
10. november 2003 - 20:26 #9
Det er rigtig nmh man kan lave alt det tror jeg ikke nogen er i tvivl om.
Ideen var nu bare at undersøge om der var lavet 1 funktion som beskrevet oven for eller om andre havde en god løsning.
Avatar billede nmh Nybegynder
10. november 2003 - 20:30 #10
Og svaret er altså, at der er ikke lavet en sådan funktion i VBscript (og heller ikke i Visual Basic, som af og til kaldes VB)
Avatar billede falslev Nybegynder
12. november 2003 - 13:18 #11
Dette forslag gør det også så vi deler nmh :)

FirmaNavn = Lcase(Request.Form("FirmaNavn"))
FirmaNavn = LTrim(FirmaNavn)
FirmaNavn = RTrim(FirmaNavn)
FirmaNavn = Ucase(Mid(FirmaNavn, 1, 1)) & Mid(FirmaNavn, 2, Len(FirmaNavn) - 1)
For intCounter=1 To Len(FirmaNavn)
IF Mid(FirmaNavn, intCounter, 1) = " " Or Mid(FirmaNavn, intCounter, 1) = "-" Or Mid(FirmaNavn, intCounter, 1) = "/" Then
  FirmaNavn = Mid(FirmaNavn, 1, intCounter) & Replace(FirmaNavn, Mid(FirmaNavn, intCounter + 1, 1), UCase(Mid(FirmaNavn, intCounter + 1, 1)), intCounter + 1, 1)
End If
Next
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