• ベストアンサー

日付のチェック

こんにちは! もし簡単な質問でしたらすみません。 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

  • Excel VBAで文字列の日付を判定

    Excel VBAで文字列の日付を判定 文字列の書式で”19900101”などとセルに入力されている場合に実際に存在する日付かを判定する方法はありますでしょうか? たとえば、19990132などと入力されている場合はエラーにしたいのです。ISDATEを使うのかともおもいましたがうまくいきません。 よろしくお願いします。

  • テキストボックスの入力チェック。

    Version 6.0 です。 テキストボックスに入力された値の中に任意の文字があるかどうかを判断する関数というのはあるでしょうか?InStrとかでやってみたのですが、If文を繰り返すことになってしまい、見難い状況です。 2つのテキストボックスに年月を入力させ、 "yyyymm"、"yyyym"、"yyyy/mm"、"yyyy/m" が入力可。入力した文字列に"/"があるかないかを判断し、あればそのままでIsDateでチェック。なければ、"/"を入れてIsDateでチェック、とさせたいです。 何か簡単なコードの書き方等あれば、ぜひ教えてください。分かり難いところがあれば、補足します。よろしくお願いします。

  • EXCELでの日付表示で

    EXCELで日付表示する際に、「0208」と入れたら「2/8」となるようにしたいのですが、 「セルの書式設定」の「ユーザー定義」や「日付」では西暦から入力しないと 「2/8」のようにはなりません。 それも「2005/02/08」と入力して初めて「2/8」となるのなら 初めから「2/8」と直接入力した方が早いです。 要は「/」(スラッシュ)をイチイチ入力したくないので、 「0208」→「2/8」となるようにしたいのですが、その場合 どういう書式設定をすればいいのでしょうか? もしかすると、日付というより文字列として考えた方がいいのかも しれませんが、分かる方教えて下さい。

  • 日付のチェックなのですが

    日付の入力チェックについて教えてください。 アクセス2000のVBでプログラムを作っているのですが、 二つのテキストボックスがあり日付をFrom、Toで入力してもらい その入力された期間が1ヶ月以上だったらエラーとしたいのですがいい方法はないでしょうか? 入力形式は2001/01/01という形です。 月またがりの一ヶ月以内(2001/01/31~2001/02/10等)はエラーとはしません。 すみませんがどなたか良い方法をご存知でしたら教えて下さると助かります。 よろしくお願いします。

  • スプレッドシートの日付チェック

    こんにちは。 スプレッドシートのスクリプトについてお聞きします。 スプレッドシートの各行にチェックボックスと日付入力欄があります。 1番上にボタンを配置し、クリックしたらチェックしてある行の 日付を別のシートに転送したいのですが、その場合セルに入力してある内容が 有効な日付形式であるかチェックしたいのです。 入力は2018/08/30のように入力します。 for (var i=1; i<=maxgyo;i++) { var value = sheet1.getRange(i,7).getValue(); if(value==true ) { 有効な日付かチェック } この中でどのようにチェックすればよろしいでしょうか? わかる方おられましたら、宜しくお願いします。

  • 入力した日付が正しいかどうかを判断する関数

    いつもお世話になっております。 環境  OS:VISTA  Excel:2007 A1セルに 日付データ(例えば、2012/2/29)を入力 した際に、その日付データが有効なものかどうかを 判断する関数はあるでしょうか? ネットで検索して、「IsDate」という関数を紹介している サイトがあったのですが、B1セルに =IsDate(A1)と入力したのですが、「#NAME?」とエラー 表示されました。 IsDate関数は、VBAでないと有効ではないのでしょうか? もし、関数で標題の処理ができる関数があれば、教えて いただきたいのですが。 よろしくお願いいたします。

  • 【エクセルの質問】日付の書式を設定したい

    日付が20070124というように連続した8桁の数字で入力されています。 セルの書式設定から表示形式を確認すると文字列で設定されています。 文字列で設定されていても2007/01/24というように年月日を区切るのに/が使われていれば日付として認識されますが連続して数字が羅列されている場合、どのように日付として変換したらいいのでしょうか?データ量が多いのでできれば関数などで一度に設定できれば助かるんですが。 ご存知の方がいたらご教授をお願いいたします。

  • VC++ 文字列のDate型チェック

    こんばんは。 VC++でVBのIsDateのような使い方をする関数 CString または CHar配列などの文字列がDate型かどうか チェックする関数を探しています。 MFCとかにないのでしょうか? 2006/05/26とかのチェックは一文字づつ抜き出して xxx/xx/xxという形はチェックできるのですが うるう年とか考慮すると自作だとかなり複雑なものになってしまいそう なので・・・ どなたかお分かりになる方、よろしくお願いします。

  • 条件付き書式 日付のセルを塗りつぶし

    Excel2007 ある列に 日付、文字列、数値が入力されています。 条件付き書式で日付の入力されているセルのみ塗りつぶしたい。 その方法を教えてください。

  • エクセルの日付機能

    エクセルの日付機能に関する質問です。 あるワークシートのA列に日、B列に月、C列に年が入力されています。これらの日付を行ごとに結合して、D列にdd/mm/yyという形式で表示させたいと考えています。 先ほど、D2に[=A2&"/"&B2&"/"&C2]という計算式を入力し、D列を右クリックして[セルの書式設定]→[表示設定]→[ユーザー定義]で[種類]欄に[dd/mm/yy]と入力しましたが、D2は日付として認識されず、ただの文字列として認識されているようです。 統合された文字列が日付として認識される良い方法を教えていただけないでしょうか?よろしくお願いします。

専門家に質問してみよう