///////////////////////////////////////////////// // This Function Checks whether the given input String is null or "" // returns boolean // @param s is a String // @return is boolean // function isEmpty(s) { return ((s == null) || (s.length == 0)); } ///////////////////////////////////////////////// // This Function eliminates leading zero's (0) // in a string. Use this before converting a string // to a date, because leading 0's in parseInt() // will signal this function to use octal mode // function eliminateLeading0s (str) { if (str == null) return null; var idx = 0; for (idx = 0; (idx < str.length) && (str.charAt(idx)=='0'); idx++) {} if (idx >= str.length) return "0"; else return str.substr(idx); } // checkDate checks whether a input date variable is in // choosen format or not // @param dataStr input variable of type text for Date Field // @return is message or true // function checkDate(field) { var dateStr = field.value; if (isEmpty(dateStr)) { return true; } var dayStr = null; var monthStr = null; var yearStr = null; var matchArray = null; // format dd/mm/yyyy if (matchArray == null) { matchArray = dateStr.match(/^(\d{1,2})\/(\d{1,2})\/((\d{4})|(\d{2}))$/); if (matchArray != null) { dayStr = matchArray[1]; monthStr = matchArray[2]; yearStr = matchArray[3]; } } // format dd.mm.yyyy if (matchArray == null) { matchArray = dateStr.match(/^(\d{1,2})\.(\d{1,2})\.((\d{4})|(\d{2}))$/); if (matchArray != null) { dayStr = matchArray[1]; monthStr = matchArray[2]; yearStr = matchArray[3]; } } // format ddmmyyyy if (matchArray == null) { matchArray = dateStr.match(/^(\d{2})(\d{2})((\d{4})|(\d{2}))$/); if (matchArray != null) { // format dd/mm/yyyy dayStr = matchArray[1]; monthStr = matchArray[2]; yearStr = matchArray[3]; } } // check for error if (matchArray == null) { alert("Date is not in a valid format.\nPlease use dd/mm/yyyy."); return false; } // eliminate leading 0's because they will // force the conversion to be execetued in octal mode! dayStr = eliminateLeading0s (dayStr); monthStr = eliminateLeading0s (monthStr); yearStr = eliminateLeading0s (yearStr); var day = parseInt(dayStr); var month = parseInt(monthStr); var year = parseInt(yearStr); // window technique for 2 digit years if (year < 100) if (year < 20) year += 2000; else year += 1900; if (month < 1 || month > 12) { // check month range alert(" Month must be between 1 and 12."); return false; } if (month==4 || month==6 || month==9 || month==11) { if (day < 1 || day > 30) { alert(" Day must be between 1 and 30."); return false; } } if (day < 1 || day > 31) { alert(" Day must be between 1 and 31."); return false; } if (month == 2) { // check for february 29th var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); if (day >29 || (day==29 && !isleap)) { alert("February " + year + " doesn't have " + day + " days."); return false; } } field.value = (day<10) ? ("0"+day) : day; field.value += "/"; field.value += (month<10)? "0"+month: month; field.value += "/"; field.value += year; return true; } ///////////////////////////////////////////////// // This Function Checks whether the given input field is // a valid Date or not // @param field The field, usually provided as // onblur="isValidDateField(this)" // @return boolean // true Valid Date // false Not a valid Format function isValidDateField(field) { if (!checkDate(field)) { if (!field.disabled) { field.focus(); field.select(); } return false; } return true; } ///////////////////////////////////////////////// // This Function Checks whether the given input field is // a number or empty string // @param field The field, usually provided as // onblur="isValidNumber(this)" // @return boolean // true Valid Number // false Not a valid Number function isValidNumber(field) { var num = Number (field.value); var val = num.toString(); if (val == "NaN") { alert ('Number invalid!'); if (!field.disabled) { field.focus(); field.select(); } return false; } return true; }