/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
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

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste