入力データの日付チェックをするには?

[上に] [前に] [次に]
あずみ 1999/03/02(火) 18:27:06
JavaScriptで日付チェック(IsDateのようなもの)する方法を教えてください。
<INPUT TYPE="text"・・・>で作成したテキストボックスの入力チェックをしたいのです。

ポケ鬼!! 1999/03/03(水) 11:28:51
もうちょっと具体的に教えてください。
テキストボックスにどういうフォーマットで書くことを要求したいのですか?
[1999/03/01] とか?

あずみ 1999/03/03(水) 14:31:59
ポケ鬼!! へ
 テキストボックスには "yyyy/mm/dd" 形式で入力してほしいんです。(例:"1999/03/03")
この形式以外で入力された場合は alert で警告したいのです。
文字列を分解して年・月・日を別々にチェックするしかないのでしょうか?

あずみ 1999/03/03(水) 14:40:48
ポケ鬼!! さんへ
すみません、呼び捨てにしてしまいました。
悪意はないのでおこらないで教えてください。

Tiot [HomePage] 1999/03/03(水) 15:26:18
<script language="JavaScript">
date = "1999/03/03";
if(isDate(date)) alert(date + " true");
else alert(date + " false");

function isDate(dateStr) {
parseDate = new Array(3);
parseDate = dateStr.split("/");
if(parseDate[0].length != 4) return false;
if(parseDate[1].length != 2) return false;
if(parseDate[2].length != 2) return false;
if(parseDate[0] < 1000 || 2000 < parseDate[0]) return false;
if(parseDate[1] < 1 || 12 < parseDate[1]) return false;
if(parseDate[2] < 1 || 31 < parseDate[2]) return false;
return true;
}
</script>

正しい日付かどうか判断する関数は、私が知らないだけで(もとから)あるのかもしれません。
必要に応じて判断を甘くしたり、厳しくしたりしてください(30日までの月や、うるう年も考慮するとか)。
string.split([sep[,limit]]) **(e4/N3)** です。
それ以前のものにも対応させるのなら
string.substring(from,to) (e3/N2) を使うのが無難でしょう。
http://www.tohoho-web.com/js/string.htm

Tiot 1999/03/03(水) 15:34:29
補足です。
parseInt(string,radix)や
isNaN(value) (e4/N3) とかも使って、
チェックしてあげた方がいいですね。
前のスクリプトで"1999/aa/bb"とかやったらtrueになっちった。
http://www.tohoho-web.com/js/builtin.htm

あずみ 1999/03/03(水) 16:42:41
Tiotさん、アドバイスをありがとうございます。
 教えていただいたソースを参考に、substring や parseInt を使ってやってみます。
「とほほのJavaScript入門」もとても勉強になります。

[上に] [前に] [次に]