0

HTML のテキスト ボックスに 12-08-1989 のような生年月日があります。ユーザーが JavaScript で 18 歳でなければならないことを検証したいと思います。

JavaScript で Date 関数を使用しましたが、YYYY-MM-DD 形式を受け入れるようですが、DD-MM-YYYY で検証したいと考えています。

どうすればこれを達成できますか?

4

4 に答える 4

2
var pattern =/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/;
if(pattern.test(str_input_date))
{
     alert("valid date");
}

これで始められるはずです。:)

于 2012-05-22T05:45:39.443 に答える
1

おそらく、 jQuery.validationなどの検証フレームワークを使用する必要があります。これは、コードで検証を処理するためのはるかに一貫した方法です。これがアプリ内の唯一の検証済みフィールドである場合は、もちろん、上記の単純な実装を使用できます。

高度な日付検証ルールが必要かどうかにかかわらず、Moment.js (または現時点ではかなり古いDate.js ) などの JS 日付フレームワークを使用できます。

于 2012-05-22T05:58:01.003 に答える
0

「javascript で日付関数を使用しましたが、YYYY-MM-DD 形式を受け入れるようですが、DD-MM-YYYY で検証したいです」

年、月、日 (およびオプションで時、分、秒、ミリ秒) の値を個別に渡すことで、Date オブジェクトを作成できます。

var aDate = new Date(2012, 5, 22);

したがって、正規表現またはその他の文字列メソッドを使用してユーザーが入力したものから部分を抽出する場合は、DD-MM-YYYY (またはその他の形式) から日付を作成できます。

ユーザーが 18 歳以上であるかどうかをテストする方法は、生年月日に 18 年を加算し、それが今日の日付以前かどうかを確認することです。

aDate.setFullYear( aDate.getFullYear() + 18 )

Date オブジェクトで使用できるさまざまなメソッドは、 MDN にリストされています。

于 2012-05-22T06:21:43.317 に答える
0

このように、日付クラスを使用できます

try{
    var x=new Date('1/1/2001');
    var Cnow=new Date();//current Date
    if(Cnow.getFullYear()- x.getFullYear()<18){
    alert('not old enough');
    }
    else{
      //success !!!
    }

}
catch(ejs){alert('invalid')}
于 2012-05-22T05:48:01.773 に答える