// 是否为合法的日期格式:YYYY-MM-DD
function isDateFormat(txt){ if(txt==null || txt == ""){return false;} else{ var regex = /[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2}/; if( regex.test(txt) ){ var noArr = txt.split("-"); var year = eval(noArr[0]); var month = eval(noArr[1]); var day = eval(noArr[2]); if ( year < 1 || month < 1 || month > 12 || day < 1 || day > 31) {return false;} if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30){return false;} if (month == 2){ if ((year % 4 != 0) && day > 29) { return false;} if (year % 4 == 0){ if(year % 100 == 0 && year % 400 != 0 && day > 29){return false;} else if (day > 28){ return false; } } } return false; } else{ return true; } } } /**
* 验证最大长度(可用于汉字,一个汉字二个单位,一个asc码一个单位) checkStr: 验证对象 maxLen: 最大数 */ function sizeCheck(checkStr, maxLen) { if (event.keyCode == 16 || event.keyCode == 17) { return; } var total = 0; var t_maxLen = maxLen; if (event.keyCode == 13) { event.keyCode = 9; } else { for ( var i = 0; i < checkStr.value.length; i++) { var c = checkStr.value.charCodeAt(i); if ((c >= "0x0001" && c < "0x007e") || (c >= "0xff60" && c < "0xff9f")) { total++; } else { if (total < maxLen) { t_maxLen--; } total += 2; } } if (total > maxLen) {
checkStr.value = checkStr.value.substr(0, t_maxLen); event.keyCode = 9; return; } } } //身份证校验 function isIdCardNo(num)
{ num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) { alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。'); return false; } //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 //下面分别分析出生日期和校验位 var len, re; len = num.length; if (len == 15) { re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); var arrSplit = num.match(re); //检查生日日期是否正确
var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { alert('输入的身份证号里出生日期不对!'); return false; } else { //将15位身份证转成18位 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); for(i = 0; i < 17; i ++) { nTemp += num.substr(i, 1) * arrInt[i]; } num += arrCh[nTemp % 11]; return num; } } if (len == 18) { re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); var arrSplit = num.match(re); //检查生日日期是否正确 var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { alert(dtmBirth.getYear()); alert(arrSplit[2]); alert('输入的身份证号里出生日期不对!'); return false; } else { //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var valnum; var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; for(i = 0; i < 17; i ++) { nTemp += num.substr(i, 1) * arrInt[i]; } valnum = arrCh[nTemp % 11]; if (valnum != num.substr(17, 1)) { alert('18位身份证的最后一位应该为:' + valnum); return false; } return num; } } return false; } //js获取项目根路径,如: http://localhost:8083/uimcardprj function getRootPath() { //获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp var curWwwPath = window.document.location.href; //获取主机地址之后的目录,如: uimcardprj/share/meun.jsp var pathName = window.document.location.pathname; var pos = curWwwPath.indexOf(pathName); //获取主机地址,如: http://localhost:8083 var localhostPaht = curWwwPath.substring(0, pos); //获取带"/"的项目名,如:/uimcardprj var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1); return (localhostPaht + projectName); } |
|