|
| komma?? Fra : mette |
Dato : 21-06-03 17:46 |
|
Hej NG
jeg har en række tal der er adskilt med et , (komma) som skal indsættes i en
database, men hvordan sikker jeg mig, at brugeren ikke har sat et komma til
sidst i talrækken. (Bliver indskrevet i en form).
Det er fordi jeg bruger split-funktion af talrækken (på en anden side) og
der går det galt, hvis der står et komma til sidst.
EKS. 1,3,9,5,32,24 OK 1,3,9,5,32,24, ikke OK
Mvh
M
| |
Jesper Stocholm (21-06-2003)
| Kommentar Fra : Jesper Stocholm |
Dato : 21-06-03 18:22 |
|
mette wrote :
> jeg har en række tal der er adskilt med et , (komma) som skal
> indsættes i en database, men hvordan sikker jeg mig, at brugeren ikke
> har sat et komma til sidst i talrækken. (Bliver indskrevet i en form).
>
> Det er fordi jeg bruger split-funktion af talrækken (på en anden
> side) og der går det galt, hvis der står et komma til sidst.
>
> EKS. 1,3,9,5,32,24 OK 1,3,9,5,32,24, ikke OK
Der er flere måder at teste det på.
1. Et regular expression
2. Når du har lavet din split og løber den igennem, så kan du
teste på om indholdet af dit element er et tal - eller længden
af det er 0
sData = Request.Form("somedata")
aNumbers = Split(sData,",")
for i = 0 to UBound(aNumbers)
if isNumeric(aNumbers(i)) then
' do something
else
' do something else
end if
next
3. Du kan teste på om den sidste karakter i den streng du modtager
er et komma.
sData = Request.Form("somedata")
if Mid(sData,Len(sData)-1,1) = "," then
' do somehing
else
' do something else
end if
--
Jesper Stocholm - http://stocholm.dk
Glad spampal-bruger, der pt har en succesrate på 99%
Prøv det med bayesian filtre - http://www.spampal.org.uk/
| |
Jens Gyldenkærne Cla~ (21-06-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 21-06-03 20:44 |
|
Jesper Stocholm skrev:
> Der er flere måder at teste det på.
>
> 1. Et regular expression
Det vil være hurtigt og elegant - men det kræver at man har styr på
regex-syntaks.
> 2. Når du har lavet din split og løber den igennem, så kan du
> teste på om indholdet af dit element er et tal - eller
> længden af det er 0
God ide. Selv om man nemt kan tjekke for om det sidst indtastede
tegn er "," er man jo ikke sikret mod ikkenumeriske data andre
steder i strengen. Se fx følgende fejlindtastningsmuligheder:
1,2,,3,4,5
3,5,t,6,3
,3,45,6,7
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Jakob Andersen (21-06-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 21-06-03 22:55 |
|
Jens Gyldenkærne Clausen skrev:
> Det vil være hurtigt og elegant - men det kræver at man har styr på
> regex-syntaks.
Hvis man ikke har skal man da være velkommen til at gøre nytte af andres
arbejde, jeg har engang strikket denne her sammen til validering af
kommaseperarede lister:
' Validation of lists, examples of allowed data:
' Numeric list: "0,0,1,2,4,5,6"
' Int: "5"
' Empty: ""
Function IsNumericList(NumericList)
Set objRegEx = New RegExp
objRegEx.Pattern = "^(?:(?:\d+,)*(?:\d+)|)$"
IsNumericList = objRegEx.Test( Trim(NumericList) )
End Function
Hvis der ikke accepteres tomme værdier skal det regulære udtryk blot
omskrives til:
^(?:\d+,)*(?:\d+)$
Og hvis man heller ikke ønsker enkle tal, altså der skal være minimum en
liste med to tal, så kan man skrive det regulære udtryk om til:
^(?:\d+)+(?:\d+)$
Der kan også laves finurligheder som f.eks. at sætte minimum og
maksimumværdier på antallet af elementer i listen, f.eks. med minimum 2
elementer og højst 5:
^(?:\d+){1,4}(?:\d+)$
Håber nogen kan bruge det til noget.
--
Jakob Andersen
| |
Jens Gyldenkærne Cla~ (21-06-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 21-06-03 23:44 |
|
Jakob Andersen skrev:
>> Det vil være hurtigt og elegant - men det kræver at man har
>> styr på regex-syntaks.
>
> Hvis man ikke har skal man da være velkommen til at gøre nytte
> af andres arbejde, jeg har engang strikket denne her sammen
> til validering af kommaseperarede lister:
[snip, nydeligt og kommenteret eksempel]
> Håber nogen kan bruge det til noget.
Helt sikkert. Nogle gange er usenet bare genialt.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Jørn Andersen (21-06-2003)
| Kommentar Fra : Jørn Andersen |
Dato : 21-06-03 18:32 |
|
On Sat, 21 Jun 2003 18:46:04 +0200, "mette" <mette_hansen@hotmail.com>
wrote:
>Hej NG
>
>jeg har en række tal der er adskilt med et , (komma) som skal indsættes i en
>database, men hvordan sikker jeg mig, at brugeren ikke har sat et komma til
>sidst i talrækken. (Bliver indskrevet i en form).
>
>Det er fordi jeg bruger split-funktion af talrækken (på en anden side) og
>der går det galt, hvis der står et komma til sidst.
>
>EKS. 1,3,9,5,32,24 OK 1,3,9,5,32,24, ikke OK
Dim strTal
' Først checker vi lige for, at der ikke spaces til start eller slut
strTal = Trim(strTal)
If Right(strTal, 1) = "," Then
strTal = Left(strTal, Len(strTal) - 1)
End If
Good luck!
--
Jørn Andersen,
Brønshøj
| |
mette (22-06-2003)
| Kommentar Fra : mette |
Dato : 22-06-03 10:17 |
|
Tak til alle for de gode svar. Nu er der lidt at lege med i sommerferien.
Forsat go' sommer.
M
> Dim strTal
> ' Først checker vi lige for, at der ikke spaces til start eller slut
> strTal = Trim(strTal)
>
> If Right(strTal, 1) = "," Then
> strTal = Left(strTal, Len(strTal) - 1)
> End If
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj
| |
Jens Gyldenkærne Cla~ (22-06-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 22-06-03 11:20 |
|
mette skrev:
> Tak til alle for de gode svar. Nu er der lidt at lege med i
> sommerferien.
God fornøjelse.
NB: Når du kommenterer et indlæg, så svar venligst nedenunder det
du citerer - og klip dine citater så du kun citerer det der er
nødvendigt for at forstå sammenhængen. Se evt. linket i min
signatur.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
|
|