Avatar billede Slettet bruger
09. januar 2008 - 21:52 Der er 10 kommentarer og
1 løsning

Flere problemer med at sende nogle input til database

Nu har jeg et dato input som skal sende en dato til min database.

Det gør den også fint.
Men jeg vil gerne have der kommer en fejlbesked hvis der bliver skrevet bogstaver.
Og hvis brugeren ikke husker at indsætte en "-" ind imellem år og mdr og mellem mdr og dag.

Altså så man er tvunget til at skrive "åååå-mm-dd"


Håber nogen kan hjælpe mig :)
Avatar billede jarret Nybegynder
09. januar 2008 - 21:59 #1
lav en kalender scelect, så styrer du formatet

eks. dato feltet her:
http://www.hvemkommer.dk/data.php
Avatar billede Slettet bruger
09. januar 2008 - 22:00 #2
Glemte lige at sige at jeg som i mit spørgsmål lige før dette bruger bl.a. denne linje for at bringe fejlbeskederne frem:

    if len(strUSERNAME) = 0 then
        fejl = true
        session("fejltekst") = session("fejltekst") & "Brugernavnet må ikke være på 0 tegn.<br>"
    end if


Så hvis det kunne laves i en "if" sætning hvor (dateBIRTH) bliver brugt.
Avatar billede Slettet bruger
09. januar 2008 - 22:02 #3
Så god er jeg ikke endnu.

Vil også bare lære hvad man skal gøre i sådanne situationer.
Så må jeg lære det andet bagefter :)

Men tak for ideen.
Avatar billede jarret Nybegynder
09. januar 2008 - 22:06 #4
det er nu nemt jeg har bare hentet er script, men hvis du gerne vil lære sååå..:-)
Avatar billede Slettet bruger
09. januar 2008 - 22:18 #5
Hehe ja... Jeg har overvejet små færdige ting.
Men det tager lidt glæden fra mig har jeg fundet ud af.
Det føles rart at kan bygge tingene selv ;)
Avatar billede nielle Nybegynder
09. januar 2008 - 22:18 #6
Nu tog vi den med regulære udtryk i den andet spørgsmål, og de kan også klare denn her

Set re = New RegExp
With re
    .Pattern = "^(19|20)\d{2}-(0?[1-9]|1[012])-(0?[1-9]|[12]\d|3[012])$"
End With

If Not re.Test(dateBIRTH) = True Then
    tejs = True
    session("fejltekst") = session("fejltekst") & "Fødselsdatoen skal være på doemen åååå-mm-dd.<br>"
End If
Avatar billede nielle Nybegynder
09. januar 2008 - 22:19 #7
tejs = True

skal være

fejl = True
Avatar billede Slettet bruger
09. januar 2008 - 22:47 #8
Hehe sad lige og læste artikel 4 for at se om jeg kunne se noget.

Har ikke lige tiden til at læse dem igennem i dag.
Men de ser rigtig rigtig gode ude..

Må jeg gætte lidt på hvad den linje betyder. Bare for se om jeg har forstået det.

.Pattern = "^(19|20)\d{2}-(0?[1-9]|1[012])-(0?[1-9]|[12]\d|3[012])$"
^ = start
(19|20)= betyder at de to første cifre skal være enten 19 eller 20.
Kan man evt lave en (19|20|21) så der er 3 valg muligheder? ikke at jeg har brug for det nu.
/d{2} betyder at de næste 2 tegn skal være 2 tal efterfulgt af hinanden.
- = Bindestregen som skal være der

Resten er jeg lidt i tvivl om.
Hvordan viker (0?[1-9]|1[012]) som "mm"
og hvordan fungere (0?[1-9]|[12]\d|3[012]) som "dd"

$ slutter så teksten som du skrev.
Avatar billede nielle Nybegynder
09. januar 2008 - 23:07 #9
> (19|20)= betyder at de to første cifre skal være enten 19 eller 20.

Rigtigt.

> Kan man evt lave en (19|20|21) så der er 3 valg muligheder? ikke at jeg har brug for det nu.

Lige præcis sådan der.

> /d{2} betyder at de næste 2 tegn skal være 2 tal efterfulgt af hinanden.

Ja.

> - = Bindestregen som skal være der

Ja.

> Resten er jeg lidt i tvivl om.
> Hvordan viker (0?[1-9]|1[012]) som "mm"

0 - betyder "et 0"
0? - betyder "et 0 eller ej"
[1-9] - betyder "et af tegnene '1' til '9'"
0?[1-9] - betyder "et 0 eller ef, efterfulgt af et af tegnene '1' til '9'"

Denne del dækker månederne 1 til 9 (eller 01 til 09).

1 - betyder '1'
[012] - betyder "et af tegnene 0, 1, eller 2". Kunne også være skrevet [0-2].
1[012] - betryder "1, efterfulgt af 0, 1 eller 2.

Denne del dækker månederne 10 til 12 (her er der ingen grund til at bekymre sig om hvrovidt der er 0 foran eller ej).

(...|...) - betyder "... eller ...". Samme princip ovenfor med 19 og 20

(0?[1-9]|1[012]) - betyder derfor "månederne 1 til 9 (med eller uden foranstillet 0) eller månederne 10 til 12".

> og hvordan fungere (0?[1-9]|[12]\d|3[012]) som "dd"

Samme grunprincip:

0?[1-9] - datorerne 1 til 9 (med eller uden 0 foran)
[12]\d - datoerne 10 til 29.
3[012] - datoerne 30 til 32 (hovsa? 32 dage i en måned - må straks rette!)

> $ slutter så teksten som du skrev.

Jep.
Avatar billede Slettet bruger
09. januar 2008 - 23:15 #10
Det er godt nok logisk når det kommer til stykket.

Jeg tror lige jeg vil lege lidt med dine artikler imorgen.

1000 tak igen, igen, igen.
Kan se du har hjulpet da jeg var helt ny til det her i 2005.
Det er rart at se nogen der gider og virkelig kan finde ud af at hjælpe på en nem og læreri måde.

Vil du poste et svar :0)
Avatar billede nielle Nybegynder
09. januar 2008 - 23:18 #11
Svar :^)
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