HTML のテキスト ボックスに 12-08-1989 のような生年月日があります。ユーザーが JavaScript で 18 歳でなければならないことを検証したいと思います。
JavaScript で Date 関数を使用しましたが、YYYY-MM-DD 形式を受け入れるようですが、DD-MM-YYYY で検証したいと考えています。
どうすればこれを達成できますか?
HTML のテキスト ボックスに 12-08-1989 のような生年月日があります。ユーザーが JavaScript で 18 歳でなければならないことを検証したいと思います。
JavaScript で Date 関数を使用しましたが、YYYY-MM-DD 形式を受け入れるようですが、DD-MM-YYYY で検証したいと考えています。
どうすればこれを達成できますか?
var pattern =/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/;
if(pattern.test(str_input_date))
{
alert("valid date");
}
これで始められるはずです。:)
おそらく、 jQuery.validationなどの検証フレームワークを使用する必要があります。これは、コードで検証を処理するためのはるかに一貫した方法です。これがアプリ内の唯一の検証済みフィールドである場合は、もちろん、上記の単純な実装を使用できます。
高度な日付検証ルールが必要かどうかにかかわらず、Moment.js (または現時点ではかなり古いDate.js ) などの JS 日付フレームワークを使用できます。
「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 にリストされています。
このように、日付クラスを使用できます
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')}