yy/mm/dd形式かどうか調べる


動作ブラウザ 【 IE:4.0   NN:4.0
Internet Explorer Netscape Navigator Opera iCab Safari
3.0x 4.0x 4.5 5.0x 5.5 6.0 2.0x 3.0x 4.0x 4.x 6.0 7.0 7.x 2.x 1.x
Windows × - × × -
Macintosh × - × × ×
UNIX - - - - - × × -

ポイント data = txt.match(/^(\d\d)\/(\d\d)\/(\d\d)$/); if (!data) { alert("異常です"); return; } mm = eval(RegExp.$2); dd = eval(RegExp.$3);
説  明 yy/mm/ddの年号形式かどうかを調べるには正規表現を使えば簡単です。マッチする文字列は「^(\d\d)\/(\d\d)\/(\d\d)$」となります。()で囲んだ部分はRegExp.$1,RegExp.$2,RegExp.$3,...RegExp.$9,で取り出すことができます。
サンプル <html> <head> <title>yy/mm/dd形式かどうか調べる</title> <script language="JavaScript"><!-- function check() { txt = document.myFORM.num.value; data = txt.match(/^(\d\d)\/(\d\d)\/(\d\d)$/); if (!data) { alert("異常です"); return; } mm = eval(RegExp.$2); dd = eval(RegExp.$3); if ((mm < 1) || (mm > 12)) { alert("月が異常です"); return; } if ((dd < 1) || (dd > 31)) { alert("日が異常です"); return; } alert("正常です"); } // --></script> </head> <body> <form name="myFORM"> 項 目:<input type="text" size="16" name="num"><br>     <input type="button" value="調べる" onClick="check()"> </form> </body> </html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA