09. januar 2008 - 21:52Der 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"
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
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"
> (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.
Synes godt om
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.
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.