日曜の朝7:30の「がっちりマンデー」を毎回、録画して視ているのだが、今回の特集は、赤ちゃんビジネス
その中で、タカラトミーが販売している 赤ちゃんのぐずりを止めるオモチャ「赤ちゃんけろっとスイッチ」を紹介していた。
これがすごいんだよね、ぐずっていた 赤ちゃんが本当に泣きやむんだよ。
原理としては、赤ちゃんはすごく飽きやすく、飽きたところにすぐに別の音を鳴らすことらしい。
http://plusd.itmedia.co.jp/lifestyle/articles/0605/23/news101.html
いいところに目をつけましたな、タカラトミーさん。
日付型をチェックするIsDate関数ですが、日付型だからといって
入力チェックをIsDate関数のみで行っていると抜けがでます。
MSDNの説明によると「IsDate 関数は、指定した式が日付型 (Date) である場合、または日付型 (Date) に変換可能な文字列である場合は、True を返します。それ以外の場合は、False を返します。」
この"変換可能な文字列"が抜けの基です。
For i = 32 To 127
Str = "2007/04/3" & Chr(i)
If IsDate(Str) = True Then
Console.Write (Str & ":" & i)
End If
Next
下記が、IsDate関数で「True」として返ってきます。
2007/04/3 :32 半角スペース
2007/04/3,:44
2007/04/3.:46
2007/04/30:48
2007/04/3H:72
2007/04/3Z:90
2007/04/3h:104
2007/04/3z:122
※追記、数値チェックのIsNumeric関数にも同様な問題があります。
参照:http://homepage1.nifty.com/rucio/main/technique/InputChk2.htm