la función seria:
$.isDate = function (inputField) { isValid = true; var currVal = $(inputField).val(); if (currVal === '') return false; //Declarar Regex var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; var dtArray = currVal.match(rxDatePattern); if (dtArray === null) isValid = false; //formato mm/dd/yyyy. dtDay = dtArray[1]; dtMonth = dtArray[3]; dtYear = dtArray[5]; if (dtMonth < 1 || dtMonth > 12) isValid = false; else if (dtDay < 1 || dtDay > 31) isValid = false; else if ((dtMonth === 4 || dtMonth === 6 || dtMonth === 9 || dtMonth === 11) && dtDay === 31) isValid = false; else if (dtMonth === 2) { var isleap = (dtYear % 4 === 0 && (dtYear % 100 !== 0 || dtYear % 400 === 0)); if (dtDay > 29 || (dtDay === 29 && !isleap)) isValid = false; } $.Error(isValid, inputField); return isValid; };
Si quieres cambiar el formato de la fecha que quieres validar, debes cambiar las siguientes lineas ejemplo:
//para formato mm/dd/yyyy. dtMonth = dtArray[1]; dtDay= dtArray[3]; dtYear = dtArray[5];
//para formato dd/mm/yyyy. dtDay = dtArray[1]; dtMonth= dtArray[3]; dtYear = dtArray[5];
Ejemplo de como utilizarías la función:
$(document).ready(function () { if (!$.isDate($('#ITtxtInicioJornada'))) { alert('Fecha INVALIDA : ' + $('#ITtxtInicioJornada').val()); $('#ITtxtInicioJornada').focus(); } });
Esta seria la función para manejar el error, es decir, cambiaría de color el input:
$.Error = function (error, field) { if (!error) { $(field).css({ 'background-color': '#fba' }); } else { $(field).css({ 'background-color': 'white' }); } };