特定の日付が正しい形式であるかどうかをチェックすることになっている関数を作成しようとしています。これを行うと、関数は変数を受け取り、それを年、月、日の3つのサブ変数に分解します。後で、これらの各サブストリングをいくつかのifステートメントでチェックしたいと思います。
GF番号880413でこれを実行すると、year = 88、month = 4、day = 13ですが、自分の番号820922でこの関数を実行すると、関数はyearを82、monthを0に設定しますか? !!そしてday=22。
この可能性はどうですか?月が04の場合は切り捨てられ、4のみが表示されますが、月が09の場合は0に切り捨てられます。
関連するコードは次のとおりです。
function isValidDate(date)
{
var valid = true;
var year = parseInt(date.substring(0, 2));
var month = parseInt(date.substring(2, 4)); // error here!
var day = parseInt(date.substring(4, 6));
alert(year+"--"+month+"--"+day+"--")
}
番号820922を実行したときの出力は次のとおりです(最後の4桁は忘れてください。これらはスウェーデンの社会保障番号用であり、この例では考慮する必要はありません)
そして、ここに番号880413の出力があります(ここでも最後の4桁を忘れてください)