Может ли кто-нибудь помочь мне изменить формат даты этой проверки jquery с YYYY-MM-DD на MM/DD/YYYY.
Пример:
2014-02-21 must be 02/21/2014
Я попытался изменить это: new RegExp(/^(\d{4})[\/\-\.](0?[1-9]|1[012])[\/\-\.](0?[1-9]|[12][0-9]|3[01])$/);
To: new RegExp(/^((0?[13578]|10|12)(-|\/)(([1-9])|(0[1-9])|([12])([0-9]?)|(3[01]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1}))|(0?[2469]|11)(-|\/)(([1-9])|(0[1-9])|([12])([0-9]?)|(3[0]?))(-|\/)((19)([2-9])(\d{1})|(20)([01])(\d{1})|([8901])(\d{1})))$/);
Но все же я не могу получить правильную проверку, которую хочу.
Здесь код:
"date": {
// Check if date is valid by leap year
"func": function (field) {
var pattern = new RegExp(/^(\d{4})[\/\-\.](0?[1-9]|1[012])[\/\-\.](0?[1-9]|[12][0-9]|3[01])$/); //<---- The Original Pattern of YYYY-MM-DD
var match = pattern.exec(field.val());
if (match == null)
return false;
var year = match[1];
var month = match[2]*1;
var day = match[3]*1;
var date = new Date(year, month - 1, day); // because months starts from 0.
return (date.getFullYear() == year && date.getMonth() == (month - 1) && date.getDate() == day);
},
"alertText": "* Invalid date, must be in YYYY-MM-DD format"
}
Пожалуйста, помогите мне.. спасибо.. :)
попробуйте следующее регулярное выражение
обратите внимание, что он просто проверяет только формат, который не проверял, год високосный год или нет
function validateDate(testDate){
var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/ ;
return date_regex.test(testDate);
}
Я думаю, вы должны попробовать это.
var pattern = new RegExp(/^\d{4}-((0\d)|(1[012]))-(([012]\d)|3[01])$/);
Но это не проверяет дни в месяце, например, 31 февраля. Но это будет длинный способ сделать это с помощью RegEx.
(0?[1-9]|1[012])
(0?[1-9]|[12][0-9]|3[01])
(19|20)?[0-9]{2}
Пороки: