regular - Javascript: cómo validar las fechas en el formato MM-DD-YYYY?
validar fecha javascript expresion regular (18)
Vi una posible respuesta aquí, pero fue por YYYY-MM-DD: validación de fecha de JavaScript
Modifiqué el código de código anterior para MM-DD-YYYY así, pero todavía no puedo hacer que funcione:
String.prototype.isValidDate = function()
{
var IsoDateRe = new RegExp("^([0-9]{2})-([0-9]{2})-([0-9]{4})$");
var matches = IsoDateRe.exec(this);
if (!matches) return false;
var composedDate = new Date(matches[3], (matches[1] - 1), matches[2]);
return ((composedDate.getMonth() == (matches[1] - 1)) &&
(composedDate.getDate() == matches[2]) &&
(composedDate.getFullYear() == matches[3]));
}
¿Cómo puedo hacer que el código anterior funcione para MM-DD-YYYY y mejor aún MM / DD / YYYY?
Gracias.
¿Qué no está trabajando al respecto? aquí hay una versión probada:
String.prototype.isValidDate = function() {
var match = this.match(/^([0-9]{2})//([0-9]{2})//([0-9]{4})$/);
var test = new Date(match[3], match[1] - 1, match[2]);
return (
(test.getMonth() == match[1] - 1) &&
(test.getDate() == match[2]) &&
(test.getFullYear() == match[3])
);
}
var date = ''12/08/1984''; // Date() is ''Sat Dec 08 1984 00:00:00 GMT-0800 (PST)''
alert(date.isValidDate() ); // true
¿Qué tal validar las fechas en formato de fecha "CUALQUIERA"? He estado usando la biblioteca DateJS y añadiéndola a formularios existentes para garantizar que obtenga fechas y horas válidas formateadas de la manera que quiero. El usuario puede incluso ingresar cosas como "ahora" y "mañana" y se convertirá en una fecha válida.
Aquí está la biblioteca de dateJS: http://www.datejs.com/
y aquí hay un consejo de jQuery que escribí: http://www.ssmedia.com/utilities/jquery/index.cfm/datejs.htm
DateFormat = DD.MM.YYYY o DMYYYY
function dateValidate(val){
var dateStr = val.split(''.'');
var date = new Date(dateStr[2], dateStr[1]-1, dateStr[0]);
if(date.getDate() == dateStr[0] && date.getMonth()+1 == dateStr[1] && date.getFullYear() == dateStr[2])
{ return date; }
else{ return ''NotValid'';}
}
Esta función validará la fecha para ver si es correcta o si está en el formato adecuado de: DD / MM / YYYY.
function isValidDate(date)
{
var matches = /^(/d{2})[-//](/d{2})[-//](/d{4})$/.exec(date);
if (matches == null) return false;
var d = matches[1];
var m = matches[2]-1;
var y = matches[3];
var composedDate = new Date(y, m, d);
return composedDate.getDate() == d &&
composedDate.getMonth() == m &&
composedDate.getFullYear() == y;
}
console.log(isValidDate(''10-12-1961''));
console.log(isValidDate(''12/11/1961''));
console.log(isValidDate(''02-11-1961''));
console.log(isValidDate(''12/01/1961''));
console.log(isValidDate(''13-11-1961''));
console.log(isValidDate(''11-31-1961''));
console.log(isValidDate(''11-31-1061''));
Esto es para validar la cadena de fecha en formato dd.mm.yyyy. Es fácil de personalizar. Solo necesita ajustar pos1 y pos2 en isValidDate ().
var dtCh = "."; var minYear = 1900;
function isInteger(s){
var i;
for (i = 0; i < s.length; i++){
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}
function stripCharsInBag(s, bag){
var i;
var returnString = "";
// Search through string''s characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++){
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function daysInFebruary (year){
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
for (var i = 1; i <= n; i++) {
this[i] = 31;
if (i==4 || i==6 || i==9 || i==11) {
this[i] = 30;
}
if (i==2) {
this[i] = 29;
}
}
return this;
}
function isValidDate(dtStr){
var daysInMonth = DaysArray(12);
var pos1=dtStr.indexOf(dtCh);
var pos2=dtStr.indexOf(dtCh,pos1+1);
var strDay=dtStr.substring(0,pos1);
var strMonth=dtStr.substring(pos1+1,pos2);
var strYear=dtStr.substring(pos2+1);
strYr=strYear;
if (strDay.charAt(0)=="0" && strDay.length>1)
strDay=strDay.substring(1);
if (strMonth.charAt(0)=="0" && strMonth.length>1)
strMonth=strMonth.substring(1);
for (var i = 1; i <= 3; i++) {
if (strYr.charAt(0)=="0" && strYr.length>1)
strYr=strYr.substring(1);
}
month=parseInt(strMonth);
day=parseInt(strDay);
year=parseInt(strYr);
if (pos1==-1 || pos2==-1){
alert("The date format should be : dd.mm.yyyy");
return false;
}
if (strMonth.length<1 || month<1 || month>12){
alert("Please enter a valid month");
return false;
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
alert("Please enter a valid day");
return false;
}
if (strYear.length != 4 || year==0 || year<minYear){
alert("Please enter a valid 4 digit year after "+minYear);
return false;
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
alert("Please enter a valid date");
return false;
}
return true;
}
Manera simple de resolver
var day = document.getElementById("DayTextBox").value;
var regExp = /^([1-9]|[1][012])//|-([1-9]|[1][0-9]|[2][0-9]|[3][01])//|-([1][6-9][0-9][0-9]|[2][0][01][0-9])$/;
return regExp.test(day);
Por favor, encuentre en el código a continuación que le permite realizar la validación de fecha para cualquiera de los formatos suministrados o en función de la configuración regional del usuario para validar las fechas de inicio / finalización y finalización. Podría haber algunos enfoques mejores, pero han surgido con esto. Lo he probado para formatos como: MM / dd / aaaa, dd / MM / aaaa, aaaa-MM-dd, aaaa.MM.dd, aaaa / MM / dd y dd-MM-aaaa.
Tenga en cuenta que el formato de fecha y la fecha de la cadena van de la mano.
<script type="text/javascript">
function validate(format) {
if(isAfterCurrentDate(document.getElementById(''start'').value, format)) {
alert(''Date is after the current date.'');
} else {
alert(''Date is not after the current date.'');
}
if(isBeforeCurrentDate(document.getElementById(''start'').value, format)) {
alert(''Date is before current date.'');
} else {
alert(''Date is not before current date.'');
}
if(isCurrentDate(document.getElementById(''start'').value, format)) {
alert(''Date is current date.'');
} else {
alert(''Date is not a current date.'');
}
if (isBefore(document.getElementById(''start'').value, document.getElementById(''end'').value, format)) {
alert(''Start/Effective Date cannot be greater than End/Expiration Date'');
} else {
alert(''Valid dates...'');
}
if (isAfter(document.getElementById(''start'').value, document.getElementById(''end'').value, format)) {
alert(''End/Expiration Date cannot be less than Start/Effective Date'');
} else {
alert(''Valid dates...'');
}
if (isEquals(document.getElementById(''start'').value, document.getElementById(''end'').value, format)) {
alert(''Dates are equals...'');
} else {
alert(''Dates are not equals...'');
}
if (isDate(document.getElementById(''start'').value, format)) {
alert(''Is valid date...'');
} else {
alert(''Is invalid date...'');
}
}
/**
* This method gets the year index from the supplied format
*/
function getYearIndex(format) {
var tokens = splitDateFormat(format);
if (tokens[0] === ''YYYY''
|| tokens[0] === ''yyyy'') {
return 0;
} else if (tokens[1]=== ''YYYY''
|| tokens[1] === ''yyyy'') {
return 1;
} else if (tokens[2] === ''YYYY''
|| tokens[2] === ''yyyy'') {
return 2;
}
// Returning the default value as -1
return -1;
}
/**
* This method returns the year string located at the supplied index
*/
function getYear(date, index) {
var tokens = splitDateFormat(date);
return tokens[index];
}
/**
* This method gets the month index from the supplied format
*/
function getMonthIndex(format) {
var tokens = splitDateFormat(format);
if (tokens[0] === ''MM''
|| tokens[0] === ''mm'') {
return 0;
} else if (tokens[1] === ''MM''
|| tokens[1] === ''mm'') {
return 1;
} else if (tokens[2] === ''MM''
|| tokens[2] === ''mm'') {
return 2;
}
// Returning the default value as -1
return -1;
}
/**
* This method returns the month string located at the supplied index
*/
function getMonth(date, index) {
var tokens = splitDateFormat(date);
return tokens[index];
}
/**
* This method gets the date index from the supplied format
*/
function getDateIndex(format) {
var tokens = splitDateFormat(format);
if (tokens[0] === ''DD''
|| tokens[0] === ''dd'') {
return 0;
} else if (tokens[1] === ''DD''
|| tokens[1] === ''dd'') {
return 1;
} else if (tokens[2] === ''DD''
|| tokens[2] === ''dd'') {
return 2;
}
// Returning the default value as -1
return -1;
}
/**
* This method returns the date string located at the supplied index
*/
function getDate(date, index) {
var tokens = splitDateFormat(date);
return tokens[index];
}
/**
* This method returns true if date1 is before date2 else return false
*/
function isBefore(date1, date2, format) {
// Validating if date1 date is greater than the date2 date
if (new Date(getYear(date1, getYearIndex(format)),
getMonth(date1, getMonthIndex(format)) - 1,
getDate(date1, getDateIndex(format))).getTime()
> new Date(getYear(date2, getYearIndex(format)),
getMonth(date2, getMonthIndex(format)) - 1,
getDate(date2, getDateIndex(format))).getTime()) {
return true;
}
return false;
}
/**
* This method returns true if date1 is after date2 else return false
*/
function isAfter(date1, date2, format) {
// Validating if date2 date is less than the date1 date
if (new Date(getYear(date2, getYearIndex(format)),
getMonth(date2, getMonthIndex(format)) - 1,
getDate(date2, getDateIndex(format))).getTime()
< new Date(getYear(date1, getYearIndex(format)),
getMonth(date1, getMonthIndex(format)) - 1,
getDate(date1, getDateIndex(format))).getTime()
) {
return true;
}
return false;
}
/**
* This method returns true if date1 is equals to date2 else return false
*/
function isEquals(date1, date2, format) {
// Validating if date1 date is equals to the date2 date
if (new Date(getYear(date1, getYearIndex(format)),
getMonth(date1, getMonthIndex(format)) - 1,
getDate(date1, getDateIndex(format))).getTime()
=== new Date(getYear(date2, getYearIndex(format)),
getMonth(date2, getMonthIndex(format)) - 1,
getDate(date2, getDateIndex(format))).getTime()) {
return true;
}
return false;
}
/**
* This method validates and returns true if the supplied date is
* equals to the current date.
*/
function isCurrentDate(date, format) {
// Validating if the supplied date is the current date
if (new Date(getYear(date, getYearIndex(format)),
getMonth(date, getMonthIndex(format)) - 1,
getDate(date, getDateIndex(format))).getTime()
=== new Date(new Date().getFullYear(),
new Date().getMonth(),
new Date().getDate()).getTime()) {
return true;
}
return false;
}
/**
* This method validates and returns true if the supplied date value
* is before the current date.
*/
function isBeforeCurrentDate(date, format) {
// Validating if the supplied date is before the current date
if (new Date(getYear(date, getYearIndex(format)),
getMonth(date, getMonthIndex(format)) - 1,
getDate(date, getDateIndex(format))).getTime()
< new Date(new Date().getFullYear(),
new Date().getMonth(),
new Date().getDate()).getTime()) {
return true;
}
return false;
}
/**
* This method validates and returns true if the supplied date value
* is after the current date.
*/
function isAfterCurrentDate(date, format) {
// Validating if the supplied date is before the current date
if (new Date(getYear(date, getYearIndex(format)),
getMonth(date, getMonthIndex(format)) - 1,
getDate(date, getDateIndex(format))).getTime()
> new Date(new Date().getFullYear(),
new Date().getMonth(),
new Date().getDate()).getTime()) {
return true;
}
return false;
}
/**
* This method splits the supplied date OR format based
* on non alpha numeric characters in the supplied string.
*/
function splitDateFormat(dateFormat) {
// Spliting the supplied string based on non characters
return dateFormat.split(//W/);
}
/*
* This method validates if the supplied value is a valid date.
*/
function isDate(date, format) {
// Validating if the supplied date string is valid and not a NaN (Not a Number)
if (!isNaN(new Date(getYear(date, getYearIndex(format)),
getMonth(date, getMonthIndex(format)) - 1,
getDate(date, getDateIndex(format))))) {
return true;
}
return false;
}
Debajo está el fragmento de HTML
<input type="text" name="start" id="start" size="10" value="05/31/2016" />
<br/>
<input type="text" name="end" id="end" size="10" value="04/28/2016" />
<br/>
<input type="button" value="Submit" onclick="javascript:validate(''MM/dd/yyyy'');" />
Puede simplificarlo un poco cambiando las primeras dos líneas de la función a esto:
var matches = this.match(/^([0-9]{2})//([0-9]{2})//([0-9]{4})$/);
O bien, simplemente cambie el parámetro al constructor RegExp para que sea
^([0-9]{2})//([0-9]{2})//([0-9]{4})$
Si su fecha necesita coincidir con DD.MM.YYYY y usar AngularJS, use el siguiente código:
$scope.validDate = function(value){
var matches = /^(/d{1,2})[.](/d{1,2})[.](/d{4})$/.exec(value);
if (matches == null) return false;
var d = matches[1];
var m = matches[2] - 1;
var y = matches[3];
var composedDate = new Date(y, m, d);
return composedDate.getDate() == d &&
composedDate.getMonth() == m &&
composedDate.getFullYear() == y;
};
console.log($scope.validDate(''22.04.2001''));
console.log($scope.validDate(''03.10.2001''));
console.log($scope.validDate(''30.02.2001''));
console.log($scope.validDate(''23.09.2016''));
console.log($scope.validDate(''29.02.2016''));
console.log($scope.validDate(''31.02.2016''));
Puede encontrar más información sobre el objeto de alcance here . Sin AngularJS, simplemente cambie la primera línea a:
ValidDate = new function(value) {
Y llámalo usando:
var MyDate= ValidDate(''29.09.2016'');
Uso esta expresión regular para validar MM-DD-YYYY:
function isValidDate(subject){
if (subject.match(/^(?:(0[1-9]|1[012])[/- //.](0[1-9]|[12][0-9]|3[01])[/- //.](19|20)[0-9]{2})$/)){
return true;
}else{
return false;
}
}
Solo coincidirá con los meses válidos y puede usar / - o. como separadores.
Yo usaría Moment.js para esta tarea. Hace que sea muy fácil analizar las fechas y también proporciona soporte para detectar una fecha inválida 1 en el formato correcto. Por ejemplo, considere este ejemplo :
var formats = [''MM-DD-YYYY'', ''MM/DD/YYYY'']
moment(''11/28/1981'', formats).isValid() // true
moment(''2-29-2003'', formats).isValid() // false (not leap year)
moment(''2-29-2004'', formats).isValid() // true (leap year)
El primer moment(.., formats)
se usa para analizar la entrada de acuerdo con el formato localizado suministrado. A continuación, se isValid
función isValid
en el objeto de momento resultante para que podamos saber realmente si es una fecha válida .
Esto se puede usar para derivar trivialmente el método isValidDate:
String.prototype.isValidDate = function() {
var formats = [''MM-DD-YYYY'', ''MM/DD/YYYY''];
return moment("" + this, formats).isValid();
}
1 Como puedo encontrar escasos comentarios sobre el asunto, solo usaría moment.js para las fechas cubiertas por el calendario gregoriano . Puede haber complementos para otros calendarios (incluidos históricos o científicos).
pase esta función a la fecha con el formato // 10-10-2012 y la identificación del objeto.
function isValidDateFormat(date, id)
{
var todayDate = new Date();
var matches = /^(/d{2})[-//](/d{2})[-//](/d{4})$/.exec(date);
if (matches == null)
{
if(date != ''__-__-____'')
{
alert(''Please enter valid date'');
}
}
else
{
var day = 31;
var month = 12;
var b_date = date.split("-");
if(b_date[0] <= day)
{
if(b_date[1] <= month)
{
if(b_date[2] >= 1900 && b_date[2] <= todayDate.getFullYear())
{
return true;
}
else
{
$("#"+id).val('''');
alert(''Please enter valid Year'');
}
}
else
{
$("#"+id).val('''');
alert(''Please enter valid Month'');
}
}
else
{
alert(''Please enter valid Day'');
$("#"+id).val('''');
}
}
}
prueba esto:
function validateDate(dates){
re = /^(/d{1,2})//(/d{1,2})//(/d{4})$/;
var days=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if(regs = dates.match(re)) {
// day value between 1 and 31
if(regs[1] < 1 || regs[1] > 31) {
return false;
}
// month value between 1 and 12
if(regs[2] < 1 || regs[2] > 12) {
return false;
}
var maxday=days[regs[2]-1];
if(regs[2]==2){
if(regs[3]%4==0){
maxday=maxday+1;
}
}
if(regs[1]>maxday){
return false;
}
return true;
}else{
return false;
}
}
<!DOCTYPE html>
<html>
<head>
<title></title>
<script>
function dateCheck(inputText) {
debugger;
var dateFormat = /^(0?[1-9]|[12][0-9]|3[01])[///-](0?[1-9]|1[012])[///-]/d{4}$/;
var flag = 1;
if (inputText.value.match(dateFormat)) {
document.myForm.dateInput.focus();
var inputFormat1 = inputText.value.split(''/'');
var inputFormat2 = inputText.value.split(''-'');
linputFormat1 = inputFormat1.length;
linputFormat2 = inputFormat2.length;
if (linputFormat1 > 1) {
var pdate = inputText.value.split(''/'');
}
else if (linputFormat2 > 1) {
var pdate = inputText.value.split(''-'');
}
var date = parseInt(pdate[0]);
var month = parseInt(pdate[1]);
var year = parseInt(pdate[2]);
var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
if (month == 1 || month > 2) {
if (date > ListofDays[month - 1]) {
alert("Invalid date format!");
return false;
}
}
if (month == 2) {
var leapYear = false;
if ((!(year % 4) && year % 100) || !(year % 400)) {
leapYear = true;
}
if ((leapYear == false) && (date >= 29)) {
alert("Invalid date format!");
return false;
}
if ((leapYear == true) && (date > 29)) {
alert("Invalid date format!");
return false;
}
}
if (flag == 1) {
alert("Valid Date");
}
}
else {
alert("Invalid date format!");
document.myForm.dateInput.focus();
return false;
}
}
function restrictCharacters(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (((charCode >= ''48'') && (charCode <= ''57'')) || (charCode == ''47'')) {
return true;
}
else {
return false;
}
}
</script>
</head>
<body>
<div>
<form name="myForm" action="#">
<table>
<tr>
<td>Enter Date</td>
<td><input type="text" onkeypress="return restrictCharacters(event);" name="dateInput"/></td>
<td></td>
<td><span id="span2"></span></td>
</tr>
<tr>
<td></td>
<td><input type="button" name="submit" value="Submit" onclick="dateCheck(document.myForm.dateInput)" /></td>
</tr>
</table>
</form>
</div>
</body>
</html>
<script language = "Javascript">
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;
function isInteger(s){
var i;
for (i = 0; i < s.length; i++){
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}
function stripCharsInBag(s, bag){
var i;
var returnString = "";
// Search through string''s characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++){
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function daysInFebruary (year){
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
for (var i = 1; i <= n; i++) {
this[i] = 31
if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
if (i==2) {this[i] = 29}
}
return this
}
function isDate(dtStr){
var daysInMonth = DaysArray(12)
var pos1=dtStr.indexOf(dtCh)
var pos2=dtStr.indexOf(dtCh,pos1+1)
var strDay=dtStr.substring(0,pos1)
var strMonth=dtStr.substring(pos1+1,pos2)
var strYear=dtStr.substring(pos2+1)
strYr=strYear
if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
for (var i = 1; i <= 3; i++) {
if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
}
month=parseInt(strMonth)
day=parseInt(strDay)
year=parseInt(strYr)
if (pos1==-1 || pos2==-1){
alert("The date format should be : dd/mm/yyyy")
return false
}
if (strMonth.length<1 || month<1 || month>12){
alert("Please enter a valid month")
return false
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
alert("Please enter a valid day")
return false
}
if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
return false
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
alert("Please enter a valid date")
return false
}
return true
}
function ValidateForm(){
var dt=document.frmSample.txtDateenter code here
if (isDate(dt.value)==false){
dt.focus()
return false
}
return true
}
</script>
function isValidDate(date)
{
var matches = /^(/d{1,2})[-//](/d{1,2})[-//](/d{4})$/.exec(date);
if (matches == null) return false;
var d = matches[2];
var m = matches[1] - 1;
var y = matches[3];
var composedDate = new Date(y, m, d);
return composedDate.getDate() == d &&
composedDate.getMonth() == m &&
composedDate.getFullYear() == y;
}
console.log(isValidDate(''10-12-1961''));
console.log(isValidDate(''12/11/1961''));
console.log(isValidDate(''02-11-1961''));
console.log(isValidDate(''12/01/1961''));
console.log(isValidDate(''13-11-1961''));
console.log(isValidDate(''11-31-1961''));
console.log(isValidDate(''11-31-1061''));
Funciona. (Probado con Firebug, de ahí el console.log ()).
function isValidDate(date) {
var valid = true;
date = date.replace(''/-/g'', '''');
var month = parseInt(date.substring(0, 2),10);
var day = parseInt(date.substring(2, 4),10);
var year = parseInt(date.substring(4, 8),10);
if(isNaN(month) || isNaN(day) || isNaN(year)) return false;
if((month < 1) || (month > 12)) valid = false;
else if((day < 1) || (day > 31)) valid = false;
else if(((month == 4) || (month == 6) || (month == 9) || (month == 11)) && (day > 30)) valid = false;
else if((month == 2) && (((year % 400) == 0) || ((year % 4) == 0)) && ((year % 100) != 0) && (day > 29)) valid = false;
else if((month == 2) && ((year % 100) == 0) && (day > 29)) valid = false;
else if((month == 2) && (day > 28)) valid = false;
return valid;
}
Esto verifica los días válidos de cada mes y los días bisiestos válidos.
if (document.getElementById(''expiryDay'').value != test(match("/^([0-9]{2})//([0-9]{2})$/"))){
alert("Enter the date in two digit month flowed by two digits year /n");
}