yyyy-dd-mm で日付形式を検証しようとしています。以下のバリデーターmatodでこれを試しています。/^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/
正規表現を使用して日付を検証しています。それを使用して検証しようとすると、うまくいき/^((?:19|20)\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/
ません。
jQuery.validator.addMethod(
"validateDateFormat",
function(value, element) {
var currVal = value;
if (currVal != '') {
var rxDatePattern = /^(\d{4})(-)(\d{1,2})(-)(\d{1,2})$/;
//var rxDatePattern = /^((?:19|20)\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/;
var dtArray = currVal.match(rxDatePattern);
if (dtArray == null){
return false;
}
dtYear = dtArray[1];
dtMonth= dtArray[3];
dtDay = dtArray[5];
if (dtMonth < 1 || dtMonth > 12)
return false;
else if (dtDay < 1 || dtDay > 31)
return false;
else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31)
return false;
else if (dtMonth == 2)
{
var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
if (dtDay > 29 || (dtDay == 29 && !isleap))
return false;
}
}
return true;
},
"Please enter a valid date, date format should be (yyyy-mm-dd)."
);
ここで検証しようとしていること:
- int と "-" のみ使用できます。
- 日付は、YYYY-MM-DD 形式でのみ使用できます。
- YYYY は 1900 より大きく、4 整数である必要があります。
- MM は 01 から 12 の間で、2 文字である必要があります。
- DD は 01 から 31 の間で、2 文字である必要があります。