"Thomas Brejner" <Brejner@AlkoGrotten.invalid> writes:
> Jeg skal have lavet et javascript der skal validere et form input, den skal
> checke at det er en dato der er indtastet,
Her skal du beslutte hvilket format (eller formater) datoen skal
indtastes i. Lad os sige det skal være dansk (dd/mm/åååå) eller ISO standard
åååå-mm-dd.
En test for formatet kunne være:
function validDate(string) {
var yr,mth,day;
var match = /^(\d{3,})([-\/])(\d{1,2})\2(\d{1,2})$/.exec(string);
if (match != null) { // iso-date
yr = Number(match[1]);
mth = Number(match[3])-1;
day = Number(match[4]);
} else {
match = /^(\d{1,2})([-\/])(\d{1,2})\2(\d{3,})$/.exec(string);
if (match != null) { // DK-date
yr = Number(match[4]);
mth = Number(match[3])-1;
day = Number(match[1]);
} else {
return null;
}
}
var date = new Date(yr,mth,day);
if (date.getMonth()!= mth || date.getDate()!= day) { // illegal date
return null;
}
return date;
}
Den returnerer en korrekt dato, hvis input er en, og ellers null.
> og så skal den checke om datoen
> er mere end 1 måned fremme. Altså hvis den aktuelle dato er 01-04-04 så må
> den nye max være 01-05-04.
Her skal du beslutte hvad en måned frem betyder. Det eksempel du gav er
simpelt. Hvad er en måned efter den 30. Januar?
Jeg vil vælge at en måned senere er samme dato næste måned, hvis den
findes, ellers sidste dag i næste måned. Jeg vil så finde tidspunktet
for midnat til dagen efter, og sammenligne.
function isWithinMonth(date,ofDate) {
ofDate = ofDate || new Date();
var nextMonth = new Date(ofDate.valueOf()); // start now
nextMonth.setHours(0,0,0,0); // ignore hours
nextMonth.setMonth(ofDate.getMonth()+1,ofDate.getDate()+1); // month later
if (nextMonth.getMonth != ((ofDate.getMonth()+1)%12)) { // if overflow
nextMonth.setDate(1);
}
// the test:
return date < nextMonth;
}
> Håber der er nogle der kan hjælpe med det.
Hvilken hjælp har du brug for? Du siger ikke at du har lavet noget selv,
så det lyder som om du gerne vil have et fuldt script forærende. :)
Ok, det fik du så næsten :)
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'