webForumDet fria alternativet

Datum validering

2 svar · 304 visningar · startad av mikab

mikabMedlem sedan sep. 20022 inlägg
#1

Hej,
Jag har följande kod som validerar datumfält i ett formulär:

function checkDate(input){

	var pattern = /^(\d{4})-(\d{2})-(\d{2})$/;

	if(!pattern.test(input))
		return false;

	var year = parseInt(RegExp.$1),
	month = parseInt(RegExp.$2) - 1,
	date = parseInt(RegExp.$3);

	var toCheck = new Date();
	toCheck.setFullYear(year);
	toCheck.setMonth(month);
	toCheck.setDate(date);

	return toCheck.getFullYear() == year && toCheck.getMonth() == month && toCheck.getDate() == date;

}

Den fungerar förträffligt utom på en punkt den tillåter INTE dag 08 eller 09. År, månad och andra dagar går bra!
Varför är det på detta sättet?

Tacksam för hjälp
mikab

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Välkommen till WF!

Här har du ett indentiskt inlägg.
http://www.webforum.nu/showthread.php?s=&postid=658992#post658992 ;)

mikabMedlem sedan sep. 20022 inlägg
#3

Tack för svaret!

Efter lite testande blev koden:

function checkDate(input){

	var pattern = /^(\d{4})-(\d{2})-(\d{2})$/;

	if(!pattern.test(input))
		return false;

	return (RegExp.$3<=new Date(RegExp.$1,RegExp.$2,0).getDate()&&RegExp.$3>0&&RegExp.$2<13&&RegExp.$2>0);

}

/mikab

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)