📄 checkvalue.js
字号:
var IS_NULL = 0X80; // 10000000var IS_FULL = 0X40; // 01000000var IS_HALF = 0X20; // 00100000var IS_ASCII = 0X10; // 00010000var IS_NUM = 0X08; // 00001000var IS_DATE = 0X04; // 00000100var IS_PHONE = 0X02; // 00000010var IS_EMAIL = 0X01; // 00000001var IS_NOT_NULL = 0X00; // 00000000var MSG_CHECK_SUCCESS = "Check Success";function getAppVer() { var sVer = navigator.appVersion; var nVer = sVer.indexOf("MSIE"); var appVer = ""; if (nVer > 0) { appVer = "M" + sVer.substring(nVer + 5, nVer + 9); } else { appVer = "N" + sVer.substring(0, 4); } if (appVer.charAt(4) == " ") { appVer = appVer.substring(0, 4) + "0"; } return appVer;}var appVer = getAppVer();/*****************日期类型************//********************************** zmx 2005.10.06*************************************//*获得系统日期*返回值:*返回系统日期/********************************** zmx 2005.10.06*************************************/function getSysDate() { var today = new Date(); var nYear = today.getYear(); var nMonth = today.getMonth() + 1; var nDay = today.getDate(); var sToday = ""; if (nYear < 1000) { sToday += "" + (1900 + nYear); }else { sToday += nYear; } if (nMonth < 10) { sToday += "0" + nMonth; }else { sToday += nMonth; } if (nDay < 10) { sToday += "0" + nDay; }else { sToday += nDay; } return sToday;}/********************************** zmx 2005.10.06*************************************//*校验是否大于系统日期*返回值:*如果校验正确,返回true*如果校验未通过,返回false*参数:str:日期字符串/********************************** zmx 2005.10.06*************************************/function checkAfterDate(str) { str = convDate(str, "/");//调用convDate()格式化日期yyyymmdd if (str.length == 6) str += "01"; if (str <= getSysDate()) return false;//调用getSysDate()提取系统日期 return true;}/********************************** zmx 2005.10.06*************************************//*校验是否等于系统日期*返回值:*如果校验正确,返回true*如果校验未通过,返回false*参数:str:日期字符串/********************************** zmx 2005.10.06*************************************/function checkIsToday(str) { str = convDate(str, "/");//调用convDate()格式化日期yyyymmdd if( str.length == 6 ) str += "01"; if( str == getSysDate() ) return true;//调用getSysDate()提取系统日期 return false;}/********************************** zmx 2005.10.06*************************************//*校验是否小于系统日期*返回值:*如果校验正确,返回true*如果校验未通过,返回false*参数:str:日期字符串/********************************** zmx 2005.10.06*************************************/function checkBeforeDate(str) { str = convDate(str, "/");//调用convDate()格式化日期yyyymmdd if (str.length == 6) str += "01"; if (str >= getSysDate()) return false;//调用getSysDate()提取系统日期 return true;}/********************************** zmx 2005.10.06*************************************//*拼接格式化日期,接收年、月、日*返回值:*返回拼接后日期/********************************** zmx 2005.10.06*************************************/function formatDate(sYear, sMonth, sDay) { if (sMonth.length == 1) sMonth = "0" + sMonth; if (sDay.length == 1) sDay = "0" + sDay; return sYear + sMonth + sDay;}/********************************** zmx 2005.10.06*************************************//*校验润年*返回值:*如果校验通过, 返回true*如果不是闰年, 返回false /********************************** zmx 2005.10.06*************************************/function checkLeapYear(year) { if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) return true; return false;}/********************************** zmx 2005.10.06*************************************//*设定日期格式,不带格式,例yyyymmdd*返回值:*返回格式化后的日期/********************************** zmx 2005.10.06*************************************/function convDate(sDate, sSep) { var pos = 0; var str = sDate; var len = str.length; if ((len < 8) || (len > 10)) { return str; }else if (str.indexOf(sSep) == 4) { pos = str.indexOf(sSep, 5); if (pos == 6) { if (len == 8) { return str.substring(0, 4) + "0" + str.substring(5, 6) + "0" + str.substring(7, 8); }else { return str.substring(0, 4) + "0" + str.substring(5, 6) + str.substring(7, 9); } } else if (pos == 7) { if (len == 9) { return str.substring(0, 4) + str.substring(5, 7) + "0" + str.substring(8, 9); }else { return str.substring(0, 4) + str.substring(5, 7) + str.substring(8, 10); } }else { return str; } }else { return str; }}/********************************** zmx 2005.10.06*************************************//*设定日期格式,带step格式(-或\),例yyyy-mm-dd*返回值:*返回格式化后的日期/********************************** zmx 2005.10.06*************************************/function formatDate(sDate, sSep) { var pos = 0; var str = sDate; var len = str.length; if ((len < 8) || (len > 10)) { return str; }else if (str.indexOf(sSep) == 4) { pos = str.indexOf(sSep, 5); if (pos == 6) { if (len == 8) { return str.substring(0, 4) + sSep + "0" + str.substring(5, 6) + sSep + "0" + str.substring(7, 8); }else { return str.substring(0, 4) + sSep + "0" + str.substring(5, 6) + sSep + str.substring(7, 9); } }else if (pos == 7) { if (len == 9) { return str.substring(0, 4) + sSep + str.substring(5, 7) + sSep + "0" + str.substring(8, 9); }else { return str.substring(0, 4) + sSep + str.substring(5, 7) + sSep + str.substring(8, 10); } }else { return str; } }else { return str; }}/********************************** zmx 2005.10.06*************************************//*校验日期是否正确,输入的参数为8位yyyymmdd*返回值:*如果字串为日期型,校验通过, 返回true*如果日期不合法, 返回false /********************************** zmx 2005.10.06*************************************/function checkRq(str) { str = convDate(str, "/"); if ((str.length != 8) || !checkNumnum(str)) return false; var year = str.substring(0, 4); var month = str.substring(4, 6); var day = str.substring(6, 8); dayOfMonth = new Array(31,29,31,30,31,30,31,31,30,31,30,31); if ((month < 1) || (month > 12)) return false; if ((day < 1) || (day > dayOfMonth[month - 1])) return false; if (!checkLeapYear(year) && (month == 2) && (day == 29)) return false;//调用checkLeapYear()校验是否闰年 return true;}/********************************** zmx 2005.10.06*************************************//*校验日期是否正确,输入的参数为10位yyyy-mm-dd*返回值:*如果字串为日期型,校验通过, 返回true*如果日期不合法, 返回false *参数:obj:页面对象;msg:字段名称;str:传入日期数值/********************************** zmx 2005.10.06*************************************/function checkDate(obj,msg,str){ if(str == "") return true;//如果为空,则通过校验 var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g; if(!pattern.test(str)) {//校验格式,如果格式不匹配,返回 alert(msg+"与yyyy-mm-dd格式不匹配"); obj.focus(); return false; } var arrDate = str.split("-"); if(parseInt(arrDate[0]) < 100) arrDate[0] = 2000 + parseInt(arrDate[0]) + "";//支持年份只输入两位数字 //看是否在1900-1-1与2099-12-31之间 var numDate = parseInt(arrDate[0]+((parseInt(arrDate[1])<10)?("0"+parseInt(arrDate[1])):arrDate[1])+""+((parseInt(arrDate[2])<10)?("0"+parseInt(arrDate[2])):arrDate[2])+""); if(!((numDate)>=19000101&&(numDate)<=20991231)) { alert(msg+"超过1900-01-01至2099-12-31的界限"); obj.focus; return false; } if(!CheckDateTime(str+" 00:00:00")){ alert(msg+"不合法"); obj.focus(); return false; }}//函数名:CheckDateTime //功能介绍:检查是否为日期时间 function CheckDateTime(str){ var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; r[2]=r[2]-1; var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]); if(d.getFullYear()!=r[1])return false; if(d.getMonth()!=r[2])return false; if(d.getDate()!=r[3])return false; if(d.getHours()!=r[4])return false; if(d.getMinutes()!=r[5])return false; if(d.getSeconds()!=r[6])return false; return true;}/********************************** zmx 2005.10.06*************************************//*校验两个日期的先后*返回值:*如果有一个值为空,不用进行比较 返回true*如果其中有一个日期长度不等于8,或, 返回true*如果起始日期早于等于终止日期,校验通过, 返回true*如果起始日期晚于终止日期, 返回false /********************************** zmx 2005.10.06*************************************/function compareRq(fromDate,toDate) { if(fromDate == "") return true;//如果为空,则通过校验 if(toDate == "") return true;//如果为空,则通过校验 if( checkRq(fromDate) == false ) return false;//调用checkRq()判断输入日期是否正确 if( checkRq(toDate) == false ) return false;//调用checkRq()判断输入日期是否正确 fromDate = convDate(fromDate, "/");//调用convDate()格式化日期yyyymmdd toDate = convDate(toDate, "/");//调用convDate()格式化日期yyyymmdd if ((fromDate.length != 8) || !checkNumnum(fromDate) || (toDate.length != 8) || !checkNumnum(toDate)) return false;//调用checkNumber()校验输入是否为整数 if(fromDate <= toDate ){ return true; }else{ return false; }}/********************************** zmx 2005.10.06*************************************//*校验两个日期的先后*返回值:*如果有一个值为空,不用进行比较 返回true*如果起始日期早于等于终止日期,校验通过, 返回true*如果起始日期晚于终止日期, 返回false *参数:obj:页面对象;msg:字段名称;fromDate、toDate:传入日期数值;step:代表比较的符号/********************************** zmx 2005.10.06*************************************/function compareDate(obj1,msg1,fromDate,obj2,msg2,toDate,step) { if(fromDate == "") return true;//如果为空,则通过校验 if(toDate == "") return true;//如果为空,则通过校验 if( checkDate(obj1,msg1,fromDate) == false ) return false;//调用checkDate()判断输入日期是否正确 if( checkDate(obj2,msg2,toDate) == false ) return false;//调用checkDate()判断输入日期是否正确 fromDate = formatDate(fromDate, "-");//调用formatDate()格式化日期yyyy-mm-dd toDate = formatDate(toDate, "-");//调用formatDate()格式化日期yyy-ymm-dd if ((fromDate.length != 10) || (toDate.length != 10) ) { alert("日期不合法"); return false;//调用checkNumber()校验输入是否为整数 } switch(step){ case "<=": if(fromDate <= toDate ){ return true; }else{ alert(msg2+"应大于"+ msg1 ); return false; } break; case "<": if(fromDate < toDate ){ return true; }else{ alert(msg2+"不应小于"+ msg1 ); return false; } break; default: break; }}/********************************** zmx 2005.10.06*************************************//*比较日期字符串*返回值:*如果dateStr1大于dateStr2,返回1*如果dateStr1等于dateStr2,返回0*如果dateStr1小于dateStr2,返回-1*如果dateStr1日期格式不对,直接返回dateStr1/********************************** zmx 2005.10.06*************************************///比较日期字符串function compareDateStr(dateStr1,dateStr2) { dateStr1 = convDate(dateStr1,"/"); dateStr2 = convDate(dateStr2,"/"); if (dateStr1 > dateStr2) { return 1; }else if (dateStr1 == dateStr2) { return 0; }else { return -1; } return dateStr1}/********************************** zmx 2005.10.06*************************************//*设定日期格式,添加“-”符号,例yyyy-mm-dd, *返回值:*返回格式化后的日期/********************************** zmx 2005.10.06*************************************/function changeAddDate(sDate, sSep) { var str_date = formatDate(sDate, sSep); return str_date.substring(0, 4) + sSep + str_date.substring(4, 6) + sSep + str_date.substring(6, 8);}/*****************数值类型************//********************************** zmx 2005.10.06*************************************//*校验字符串是否为整型*返回值:*如果字串全部为数字,校验通过,返回true*如果校验不通过, 返回false
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -