Web覚書トップ > JavaScript サンプル > 『日付の妥当性をチェックしてみる』
説明

テキストボックスに日付を入力してもらうときは、チェックが難しいものです。 今回は、そんな日付入力チェックを手伝うスクリプトです。

実行例
年  月  日 

コード
function dateCheck(obj){
	obj = obj.form;
	var years = obj.years.value;
	var months = obj.months.value;
	var days = obj.days.value;
	var flag = true;
	if (years == "" || isNaN(years)) {
		window.alert("年が未入力です");
		return;
	}
	if (months == "" || isNaN(months)) {
		window.alert("月が未入力です");
		return;
	}
	if (days == "" || isNaN(days)) {
		window.alert("日が未入力です");
		return;
	}
	years = parseInt(years);
	months = parseInt(months) - 1;
	days = parseInt(days);
	if (years < 1900) {
		window.alert("年の値が小さすぎます");
		return;
	}
	var dates = new Date(years,months,days);
	if (dates.getYear() < 1900) {
		if (years != dates.getYear() + 1900) { flag = false; }
	} else {
		if (years != dates.getYear()) { flag = false; }
	}
	if (months != dates.getMonth()) { flag = false; }
	if (days != dates.getDate()) { flag = false; }
	if (flag) {
		window.alert("入力された日付は存在します");
	} else {
		window.alert("入力された日付は存在しません");
	}
}
<FORM>
<INPUT type="text" size="4" maxlength="4" name="years"> 年 
<INPUT type="text" size="2" maxlength="2" name="months"> 月 
<INPUT type="text" size="2" maxlength="2" name="days"> 日 
<INPUT type="button" value="日付チェック" onClick="dateCheck(this);">
</FORM>

解説&ステップアップ

入力された日付を使って日付型オブジェクトを作成します。 そのオブジェクトが持つ日付と入力された値を比較して同じであれば、その日付が存在するとしています。

動作確認

IE5.0(win)、IE5.5(win)、NN4.7(win)

© hyork@yahoo.co.jp (2001. 3.13)