Javascript を使用したユーザー入力の解析に問題があり、パーサーが ddMMyyyy の日付を正しく受け入れられません。区切り文字がある場合、正しく解析されます。
以下の例では、DateJS (NZ ローカライズ) を使用しています。私は、新しいMomentJで最初の試みを行いました(これは、入力の検証に理想的であることが証明されていません)。入力ケースを適切に処理する場合は、他のフレームワークを受け入れます。
私のテストケース:
// Parses correct value
var dateWithHyphens = Date.parse('01-06-2012');
// Parses incorrectly, using MMddyyy, instead of ddMMyyyy
var dateWithoutHyphens = Date.parse('01062012');
// Parses incorrectly, using MMddyyy, instead of ddMMyyyy
var dateWithFormat = Date.parse('01062012', { format: 'ddMMyyyy'});
このために JSFiddle を作成しました: http://jsfiddle.net/ajwxs/1
テスト ケースは 6 月 1 日を返すはずですが、間違ったテスト ケースは 1 月 6 日を返します (これは入力の解析であり、出力の書式設定が遅すぎます)。
これらの日付を解析するために正しい形式を使用するように JSDate をより適切に提案できるかどうかについての提案はありますか?
アップデート
このアプリケーションでは、次のような多数の可能なユーザー入力を検証しています。
01062012
01/06/2012
010612
これにより、parseExact スタイルの実装の実装が少し冗長になります...