試してないけど、0000/01/01~9999/12/31まで対応した、正規表現の日付チェック
^((\d{1,4}/((0?[13578]|10|12)/(0?[1-9]|[1-2][0-9]|3[0-1]))|((0?[469]|11)/(0?[1-9]|[1-2][0-9]|30)))|((0{0,3}[048]|0?[048]?00|[02468]?[048]00|[13579][26]00|\d{0,2}[2468]0|\d{0,2}[02468][48]|\d{0,2}[13579][26])/0?2/(0?[1-9]|[1-2][0-9]))|(\d{1,4}/0?2/(0?[1-9]|[1-2][0-8]|19)))$
たぶんあってる。
でも、これだと、SQL Serverではエラーになる。
SQL Serverでは1900/1/1~9999/12/31までである必要がある。
そこで、
^((19\d{2}|[2-9]\d{3})/(((0?[13578]|10|12)/(0?[1-9]|[1-2][0-9]|3[0-1]))|((0?[469]|11)/(0?[1-9]|[1-2][0-9]|30)))|(([2468]?[048]00|[3579][26]00|((19\d{2}|[2-9]\d)([2468]0|[02468][48]|[13579][26])))/0?2/(0?[1-9]|[1-2][0-9]))|((19\d{2}|[2-9]\d{3})/0?2/(0?[1-9]|[1-2][0-8]|19)))$
とかってなるのだろうか・・・
もちろん、これも試していない(^^;
-----
2010/04/04 0:11
結局動かないと恥ずかしいから、一応試した。
動かなかったので修正。
たぶん動く。
Visual Web Designer 2008で検証。
ブラックボックステスト数十通り。
以上
スポンサーサイト
- 2010/04/03(土) 22:17:48|
- 未分類
-
| トラックバック:0
-
| コメント:0