/** * DHTML date validation script for dd/mm/yyyy. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/) */ // Declaring valid date character, minimum year and maximum year var dtCh= "/"; var minYear=1900; var maxYear=2100; function ValidaEmail(mail){ var ret = false; if (typeof(mail) != "undefined"){ mail = mail.match(/(\w+)@(.+)\.(\w+)$/); if (mail != null){ if ((mail[3].length==2) || (mail[3].length==3)) ret = true; } } return ret; } function DataValida(data) { var err=0 if (data.length != 8) return false; day = data.substring(0,2); month = data.substring(3,2); year = data.substring(5,2); if (month<1 || month>12) err = 1; if (day<1 || day>31) err = 1; if (day==31 && (month==4 || month==6 || month==9 || month==11)) err=1; if (month==2) { if ((year%4==0) && (year%100!=0 || year%400==0)) { if (day>29) err=1; } else { if (day>28) err=1; } } if (day == "" || month == "" || year == "") err=1; if (err==1) { return false; } return true; } 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){ if (dtStr.length == 0) return true; if (dtStr.length != 8) return false; // transforma: 'dd/mm/yy' em 'dd/mm/yyyy' ----01/34/67 dtStr = dtStr.substr(0,6)+'20'+dtStr.substr(6,2) 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) return false; if (strMonth.length<1 || month<1 || month>12) return false; if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]) return false; if (strYear.length != 4 || year==0 || yearmaxYear) return false; if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false) return false; return true } function ComparaDatas(dtStr1,dtStr2){ //returna false de dt1 > dt2 //transforma em string no formato yymmdd para poder comparar diretamente dt1 = dtStr1.substr(6,2)+ dtStr1.substr(3,2) + dtStr1.substr(0,2); dt2 = dtStr2.substr(6,2)+ dtStr2.substr(3,2) + dtStr2.substr(0,2); if (dt1>dt2) return false; else return true; }