02. september 2008 - 10:22Der er
10 kommentarer og 1 løsning
sikre sig at input er skrevet med komma
Jeg har et inputfelt hvor en bruger kan indtaste et kommatal (et enkelt decimal), som efterfølgende bliver gemt i en access-database. Hvis brugeren vælger at bruge punktum istedet, går den helt gal. Kan jeg tilrette dataen inden den skrives i databasen?
Er angiveligt omvendt når serveren scriptet er på, er dansk.
Du kan lave en replace på punktum i data inden du gemmer i databasen.
Den hurtige løsning:
val = replace(Request.Form("tallet")&"", ".", ",")
hvilket vil udskifte alle kommaer i feltet "tallet". Det kan dog have en negativ sideeffekt, hvis brugeren rent faktisk har brugt punktum som tusindskiller, så derfor kan du evt. starte med at tjekke om dette er tilfældet (men det er stadig ikke en helt sikker metode):
tallet = Request.Form("tallet")&"" start = 1 antal = 0 do dotpos = instr(start, tallet, ".") if dotpos > 0 then antal = antal + 1 until dotpos = 0
if antal <= 1 then tallet = replace(tallet, ".", ",") end if
hvis der er mere end et punktum i teksten, så udskiftes det ikke...
Ups! Der mangler lige en forøgelse af startpositionen (ellers bliver det en laaaang løkke :-))
tallet = Request.Form("tallet")&"" start = 1 antal = 0 do dotpos = instr(start, tallet, ".") if dotpos > 0 then antal = antal + 1 start = dotpos + 1 until dotpos = 0
if antal <= 1 then tallet = replace(tallet, ".", ",") end if
Well.. ret beset er det jo ikke nødvendigt at udskifte punktumer, når man ved der ikke er nogen at udskifte, så den sidste if kan bare tjekke på antal = 1 i stedet:
if antal = 1 then tallet = replace(tallet, ".", ",") end if
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.