/ 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
Tjek om der er tal i et felt
Fra : Flemming Jensen


Dato : 28-09-02 04:04

Hejsa

Jeg har et text felt f.eks. Postnr som brugeren skal udfylde når han
opretter en bruger. Hvordan får jeg den til at tjekke om feltet er udfyldet
med tal? Og endnu bedre ville det være hvis den også kunne tjekke antal
decimaler, hvor der selvfølgelig skal være fire. Der må være noget ligende
følgende, eller måske ikke, men så kan I da se hvad jeg mener.

If strPostnr <> Tal AND Decimaler <> 4 THEN
Response.Write("Fejl i indtastning")
Else
end if

Og det samme med Email feltet. Der skal den så bare tjekke om variablen
indeholder et @. Er det ikke også muligt på en eller anden måde?

1000-tak for hjælpen

__
Flemming Jensen



 
 
SumSum (28-09-2002)
Kommentar
Fra : SumSum


Dato : 28-09-02 07:43

"Flemming Jensen" <CyberOrc@tiscali.dk> skrev i en meddelelse
news:b_8l9.38966$Qk5.1683310@news010.worldonline.dk...
> Hvordan får jeg den til at tjekke om feltet er udfyldet med tal?

brug denne function, jeg har lavet til dig:
function checktal(str)
checktal=0
for tempcount=1 to len(str)
if mid(str,tempcount,1)<"0" or mid(str,tempcount,1)>"9" then
checktal=tempcount
end if
next
end function

kald den med:

position=checktal(strPostnr)

position indeholder 0, hvis alle tegn er tal og positionen på det sidste
fundne bogstav, hvis der er indtastet andet end tal.
if position>0 then
fejl
end if

> Og endnu bedre ville det være hvis den også kunne tjekke antal
> decimaler, hvor der selvfølgelig skal være fire.
du mener vel ciffre

postnr=cint(strPostnummr)
strPostnr2=cstr(postnr)
if strPostnr<>strPostnr then
fejl. Postnummer skal være på 4 tal
end if

> Og det samme med Email feltet. Der skal den så bare tjekke om variablen
> indeholder et @. Er det ikke også muligt på en eller anden måde?

if Instr(strEmail, "@") <1 then
fejl. Email adressen er ikke gyldig.
end if

Dette tillader dog en email i formen @xxxxx . Du bør også teste på om
emailadressen også indeholder et "." bag "@"- tegnet og om der står tegn
foran OG bagved "@"

> 1000-tak for hjælpen


Velbekommen. Håber du kan bruge det til at komme videre

Hilsen
SumSum


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.391 / Virus Database: 222 - Release Date: 19-09-2002



Thygesen (28-09-2002)
Kommentar
Fra : Thygesen


Dato : 28-09-02 09:37

> Jeg har et text felt f.eks. Postnr som brugeren skal udfylde når han
> opretter en bruger. Hvordan får jeg den til at tjekke om feltet er
udfyldet
> med tal? Og endnu bedre ville det være hvis den også kunne tjekke antal
> decimaler, hvor der selvfølgelig skal være fire. Der må være noget ligende
> følgende, eller måske ikke, men så kan I da se hvad jeg mener.
>

if not IsNumeric(request.form("postnr")) or len(request.form("postnummer"))
<> 4 then
response.write "Du har ikke indtastet et gyldigt postnummer!<br>"
end if

if not IsEmail(request.form("email")) then
response.write "Du har indtastet en ugyldig email!<br>"
end if

Function IsEmail(strEmail)
IsEmail = True
If Len(strEmail) < 6 Then
IsEmail = False
End If
If InStr(1, strEmail, "@", 1) < 2 Then
IsEmail = False
End If
If InStr(1, strEmail, ".", 1) = 0 Then
IsEmail = False
End If
pos = InStr(1, strEmail, "@", 1)
If pos < 2 Then
IsEmail = False
Else
pos = InStr(pos+1, strEmail, "@")
If pos > 0 Then
IsEmail = False
End If
End If
End Function

Så enkelt kan det gøres.

Mvh. Christoffer Thygesen

e-mail: cht@cht.dk

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= =
CHT Web - http://CHT.dk
Vi udvikler alt til din hjemmeside
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= =



Flemming Jensen (28-09-2002)
Kommentar
Fra : Flemming Jensen


Dato : 28-09-02 11:45

Thygesen wrote:

> if not IsNumeric(request.form("postnr")) or
len(request.form("postnummer"))
> <> 4 then
> response.write "Du har ikke indtastet et gyldigt postnummer!<br>"
> end if
>
> if not IsEmail(request.form("email")) then
> response.write "Du har indtastet en ugyldig email!<br>"
> end if

Tak for svaret. Nu har jeg koden, nu mangler jeg bare forståelsen. Jeg
kender f.eks. ikke IsNumeric, Len eller InStr. Det var vist alle dem jeg
ikke kender. Jeg er ikke glad for bare at smide noget kode ind på siden, som
jeg har fået, så er der ikke en som vil forklare præcis hvad de kommandoer
gør, og helst til netop dette eksempel. Jeg kan vil regne ud af IsNumeric
bare tjekker om der er tal i variablen som kommer i () bagefter or len
hvilke tjekker decimalerne, men hvad gør InStr så?

Kan I anbefalde en side hvor jeg kan læse om alle de forskellige komandoer i
stedet for jeg skal spørge jeg om dem er? Det er i det mindste noget man
selv kan gøre uden hjælp, altså hvis man bare ved hvor man kan finde en
liste over dem.

1000-tak endnu engang

__
Flemming Jensen



Jens Gyldenkærne Cla~ (28-09-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-09-02 12:59

Flemming Jensen skrev:

> Tak for svaret. Nu har jeg koden, nu mangler jeg bare
> forståelsen. Jeg kender f.eks. ikke IsNumeric, Len eller
> InStr.

IsNumeric tjekker om et udtryk er numerisk (et tal).

Følgende udtryk er sande:
IsNumeric(17)
IsNumeric(3+6)
IsNumeric(3.234)
IsNumeric("345")
IsNumeric(" 345 ")

Følgende udtryk er falske:
IsNumeric("4+5")
IsNumeric("23 kr")

Len finder længden (Length) af en strengvariabel.

Len("2200") = 4
Len(" 2200 ") = 6
Len(Null) = Null

InStr giver positionen af én streng (b) i en anden (a) (In String).
Hvis b ikke findes i a returneres 0. Hvis a eller b er Null
returneres Null.
I den mest simple form bruger man bare a og b som parametre:

InStr("Kasseapparat", "s") = 3
InStr("Kasseapparat", "K") = 1
InStr("Kasseapparat", "n") = 0
InStr("Kasseapparat", "rat") = 10

Man kan tilføje en startparameter forrest - den angiver hvor i a
funktionen skal begynde at lede efter b:

InStr(3, "Kasseapparat", "a") = 6
InStr(6, "Kasseapparat", "a") = 6
InStr(7, "Kasseapparat", "a") = 9
InStr(8, "Kasseapparat", "appa") = 0

Endelig kan man sætte en sammenligningsparameter på til sidst.
Enten 0 (default) som laver en binær sammenligning eller 1 for en
tekstsammenligning. Bruger man binær sammenligning er funktionen
versalfølsom ("A" <> "a").

> Kan I anbefalde en side hvor jeg kan læse om alle de
> forskellige komandoer i stedet for jeg skal spørge jeg om dem
> er? Det er i det mindste noget man selv kan gøre uden hjælp,
> altså hvis man bare ved hvor man kan finde en liste over dem.

På adressen herunder kan du finde dokumentationen til VBScript (det
sprog de nævnte funktioner stammer fra). Den kan læses på nettet
eller hentes som en Windows Help-fil.

<http://msdn.microsoft.com/nhp/Default.asp?contentid=28001169>
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

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

Månedens bedste
Årets bedste
Sidste års bedste