日付が有効かどうかをチェックする次のコードがあります。http://jsfiddle.net/uzSU6/36/
日付部分、月部分、または年部分に空白がある場合、日付は無効と見なされます。このため、現在、操作前後の文字列の長さを確認していtrim
ます。正常に動作します。しかし、空白をチェックするためのより良い方法はありますか?(たとえば、===
演算子を使用)
function isValidDate(s)
{
var bits = s.split('/');
//Javascript month starts at zero
var d = new Date(bits[2], bits[0] - 1, bits[1]);
if ( isNaN( Number(bits[2]) ) )
{
//Year is not valid number
return false;
}
if ( Number(bits[2]) < 1 )
{
//Year should be greater than zero
return false;
}
//If there is unwanted blank space, return false
if ( ( bits[2].length != $.trim(bits[2]).length ) ||
( bits[1].length != $.trim(bits[1]).length ) ||
( bits[0].length != $.trim(bits[0]).length ) )
{
return false;
}
//1. Check whether the year is a Number
//2. Check whether the date parts are eqaul to original date components
//3. Check whether d is valid
return d && ( (d.getMonth() + 1) == bits[0]) && (d.getDate() == Number(bits[1]) );
}