• ベストアンサー

日付のチェック

こんにちは! もし簡単な質問でしたらすみません。 JavaScriptで 入力した文字列が"2000/09/10"などの日付の書式になっているか どうか調べる関数ってあるんでしょうか? VBScriptでいうIsDate関数みたいな。 もし無い場合どのようなプログラムを組めばうまく日付かどうか チェックすることが出来るのでしょうか? 又、<SCRIPT>でJavaScriptを定義した中からVBScriptを使用すること は可能なのでしょうか? ご存知の方教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> 入力した文字列が"2000/09/10"などの日付の書式になっているか > どうか調べる関数ってあるんでしょうか? Microsoft の方は良く知らないんですが、JavaScript には、期待の動作を するそのものの関数が無いので、自分で作るしかないです。 いちばん簡単そうなのは、与えられた文字列をばらして、Date のオブジェクトを 作ってみて、それが期待した通りになっているかどうかを調べることでしょう。 というわけで、いっちょ書いてみました。 <html> <body> <script type="text/JavaScript"> function isDateString(s) {  a = s.split("/");  a[1] = a[1] - 1;  x = new Date(a[0], a[1], a[2]);  if (a[0] != x.getYear() || a[1] != x.getMonth() || a[2] != x.getDate() ) {   return 0;  } else {   return 1;  } } function test_f(s) {  if (isDateString(s)) {   document.writeln(s + " is Valid.<br>");  } else {   document.writeln(s + " isn't Valid.<br>");  } } test_f(new String("2001/1/20")); test_f(new String("2001/2/29")); </script> </body> </html> # インデントを見やすくするために、全角の空白を使っているので注意 > 又、<SCRIPT>でJavaScriptを定義した中からVBScriptを使用すること > は可能なのでしょうか? これは、別ものですから、混ぜることは無理です。 ただし、Internet Explorer であれば、SCRIPT タグで VBScript を使う旨を 指定できます。 普段は使わないので、よく分からないんですが、こんな感じで使えます。 <html> <body> <script language="VBScript"> MsgBox "Hello" </script> </body> </html>

toshi_1919
質問者

お礼

わざわざソースまで書いて頂きありがとうございました。 とても役に立ちました。

関連するQ&A