/** * 此函数的功能就是document.getElementById(id),用此函数相当于简写 * @param id 页面对象id(字符串类型) */ function GetObject(id){ var el = document.getElementById(id); return(el); } /** * 得到今天日期 */ function getSysDate() { var d=new Date(); var day=d.getDate(); var month=d.getMonth() + 1; var year=d.getFullYear(); var today=year + "-" + month + "-" + day; return today; } /** *日期相加减函数:在传入日期srcDate基础上相加或减num天数(num为正数表示加、负数表示减) *@param srcDate 传入日期 *@param num 天数 *@return 返回目标日期 */ function getDestDay(srcDate,num) { if(!dateCheck(srcDate)) { alert('传入日期格式不正确'); return; } var str = srcDate.replace(/-/g,'/'); var date = new Date(str); var nextDate = new Date(date.getYear(),date.getMonth(),date.getDate()+(num*1)); var destStr = nextDate.getYear()+'-'+(nextDate.getMonth()+1)+'-'+nextDate.getDate(); return destStr; } /** * 当图片加载出错时,图片不显示 */ function imgLoadError(){ event.srcElement.style.display='none'; } /* * trim、ltrim 或 rtrim已加入String对象的内置方法。 * 使用举例:var str=" abc "; * str=str.trim(); */ //删除左右两端的空格 String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } //删除左边的空格 String.prototype.ltrim=function(){ return this.replace(/(^\s*)/g,""); } //删除右边的空格 String.prototype.rtrim=function(){ return this.replace(/(\s*$)/g,""); } /**显示或隐藏指定元素(本为是显示就隐藏,本来是隐藏就显示) *@param c_Str 元素ID */ function showHide(c_Str) { if(document.all(c_Str).style.display=='none') { document.all(c_Str).style.display='block'; } else { document.all(c_Str).style.display='none'; } } /** * 全选或全不选一个form中的全部复选框 * @param form form对象 * @param flag true全选,false全不选 */ function selectAll(form,flag) { for(i=0;i maxlimit) { field.value = field.value.substring(0, maxlimit); alert("输入的文字不能超过"+maxlimit+"个字!"); } } /** * 导出数据为Excel,需要设置IE里边的安全属性 * tabname--的名称ID * 调用onclick="Print2Excel('DataGrid1')" */ function Print2Excel(tabname) { var exApp = new ActiveXObject("Excel.Application"); var exBook = exApp.Workbooks.Add(); var exSheet = exBook.ActiveSheet; var tablename = eval(tabname); for(i = 0; i < tablename.rows.length; i++) { for(j = 0; j < tablename.rows[i].cells.length; j++) { var cellValue = GetInnerText(tablename.rows[i].cells[j]); if(cellValue == " ") { cellValue = ""; } exSheet.Cells(i + 1,j + 1).Value = cellValue; } } exApp.Visible = true; alert("完成"); } /** * 获取元素最深子节点的text */ function GetInnerText(obj) { var text; if (obj.childNodes.length > 0) { text = GetInnerText(obj.childNodes[0]); } else { text = obj.data; } return text; } /** * 按等比例缩略图显示图片 * @param ImgD img对象 * @param width_s 目标宽度 * @param height_s 目标高度 */ function autoSizeImg(ImgD,width_s,height_s){ var image=new Image(); image.src=ImgD.src; //图片的尺寸必须比标准尺寸大才做处理 if(image.width>0 && image.height>0 &&(image.width>width_s || image.height>height_s)){ if(image.width/image.height>=width_s/height_s){ //宽尺寸大一些,以宽度为基准 ImgD.width=width_s; ImgD.height=(image.height*width_s)/image.width; }else{ //高尺寸大一些,以高度为基准 ImgD.height=height_s; ImgD.width=(image.width*height_s)/image.height; } } } //*********************************检查验证的JS函数************************************ /** * 检查Email格式是否合法 * @param s 要验证的email地址 */ function emailCheck(s){ var reg1 = new RegExp('^[a-zA-Z0-9][a-zA-Z0-9@._-]{3,}[a-zA-Z]$'); var reg2 = new RegExp('[@.]{2}'); if (s.search(reg1) == -1 || s.indexOf('@') == -1 || s.lastIndexOf('.') < s.lastIndexOf('@') || s.lastIndexOf('@') != s.indexOf('@') || s.search(reg2) != -1) return false; return true; } /** * 检查日期格式是否正确 * @param strvalue 日期格式字符串 yyyy-mm-dd; yyyy-m-d; */ function dateCheck(strvalue) { var value = strvalue; var pattern=/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/; if(value.length >= 6 && value.length <= 10) { var ymd = value; var strY = ""; var y = 0; var m = 0; var d = 0; if(!pattern.test(value)) return false; //时间格式不对 strY = RegExp.$1; y = eval(RegExp.$1); m = eval(RegExp.$2); d = eval(RegExp.$3); if((y == 0 || m > 12 || m == 0 || d == 0) || ((m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) && d > 31) || ((m==4 || m==6 || m==9 || m==11) && d > 30) || (m==2 && y%4==0 && d > 29) || (m==2 && y%4 != 0 && d > 28)) { return false; } if (y>=100 && y<1000) { return false; } } else if (value.length > 0) { return false; } return true; } /** * 检查日期的合理性 * @param sDate 起始日期 yyyy-mm-dd; yyyy-m-d; * @param eDate 结束日期 yyyy-mm-dd; yyyy-m-d; * @param isEqual * true - 起始日期 <= 结束日期 * false - 起始日期 < 结束日期 * @return 如果日期格式不合法,返回false */ function chkDateFromTo(sDate, eDate, isEqual){ //日期格式检查 if (dateCheck(sDate) && dateCheck(eDate)){ var strSeparator = "-"; //split symbol var strDateArrayStart; var strDateArrayEnd; strDateArrayStart = sDate.split(strSeparator); strDateArrayEnd = eDate.split(strSeparator); var strDateS = new Date(strDateArrayStart[0] + "/" + strDateArrayStart[1] + "/" + strDateArrayStart[2]); var strDateE = new Date(strDateArrayEnd[0] + "/" + strDateArrayEnd[1] + "/" + strDateArrayEnd[2]); //check date var intDay; intDay = (strDateE-strDateS)/(1000*3600*24); //alert(intDay); if(isEqual) { if(intDay < 0) return false; return true; } else { if(intDay <= 0) return false; return true; } }else{ return false; } } /** * 检查时间的合理性 * @param sTime 起始时间 MM:SS * @param eTime 结束时间 MM:SS * @param isEqual * true - 起始时间 <= 结束时间 * false - 起始时间 < 结束时间 * @return 如果日期格式不合法,返回false */ function chkTimeFromTo(sTime,eTime,isEqual) { var strSeparator = ":"; //split symbol var strTimeArrayStart; var strTimeArrayEnd; strTimeArrayStart = sTime.split(strSeparator); strTimeArrayEnd = eTime.split(strSeparator); var sHour = strTimeArrayStart[0]*1; var sSecond = strTimeArrayStart[1]*1; var eHour = strTimeArrayEnd[0]*1; var eSecond = strTimeArrayEnd[1]*1; if(isEqual) { if(sHour < eHour) { return true; } else if(sHour == eHour) { if(sSecond <= eSecond) { return true; } else{ return false; } } else { return false; } } else { if(sHour < eHour) { return true; } else if(sHour == eHour) { if(sSecond < eSecond) { return true; } else{ return false; } } else { return false; } } } /** * 检查固定电话 * @param str 固定电话或者灵通号码 */ function isTel(str) { return true ;//固定电话或者灵通号码不作验证,可以随意输入 var patrn=/(^[0-9]{3,4}\-[0-9]{3,9}$)/; if (!patrn.exec(str)) return false ; else return true ; } /** * 允许固定电话、小灵通、手机、含分机的固定电话的任意一种 * 含分机的电话格式:010-12345678-11 */ function isPhone(s) { var tel=trim(s); var pattern=/^(\d{6,16}|\d{3,4}-\d{6,8}|\d{3,4}-\d{6,8}-\d{1,4}|\d{6,8}-\d{1,4})$/; if(tel.indexOf(tel.length-1)=="-") return false; var ss=tel.split("-"); if(ss.length<=2) { return pattern.exec(tel); } if(ss.length==3) { return pattern.exec(ss[0]+"-"+ss[1]) && isData(ss[2]); } return false; } /** * 检查手机号/小灵通号,只要是11、12位数字就可以 */ function isMobile(str){ var patrn=/^\d{11,12}$/; if (!patrn.exec(str)) return false; else return true; } /** * 是否数字 */ function isNum(s) { if (s!="0") { var patrn=/(^[0-9]*[1-9][0-9]*$)/; if (!patrn.exec(s)) return false; else return true; } return true; } /** * 是否金额 */ function isMoney(s) { if (s=="0.0") return true; if (s!="0") { var patrn=/(^[0-9]*[1-9][0-9]*\.?[0-9]{0,}$)/; if (!patrn.exec(s)) return false; else return true; } return true; } /** * 身份证号码验证 */ function isIdCardNo(num) { var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var error; var varArray=new Array(); var intValue; var lngProduct=0; var intCheckDigit; var intStrLen=num.length; var idNumber=num; // initialize if ((intStrLen != 15) && (intStrLen != 18)) { //error = "输入身份证号码长度不对!"; //alert(error); //frmAddUser.txtIDCard.focus(); return false; } // check and set value for(i=0;i '9') && (i != 17)) { //error = "错误的身份证号码!."; //alert(error); //frmAddUser.txtIDCard.focus(); return false; } else if (i < 17) { varArray[i] = varArray[i]*factorArr[i]; } } if (intStrLen == 18) { //check date var date8 = idNumber.substring(6,14); if (checkDate(date8) == false) { //error = "身份证中日期信息不正确!."; //alert(error); return false; } // calculate the sum of the products for(i=0;i<17;i++) { lngProduct = lngProduct + varArray[i]; } // calculate the check digit intCheckDigit = 12 - lngProduct % 11; switch (intCheckDigit) { case 10: intCheckDigit = 'X'; break; case 11: intCheckDigit = 0; break; case 12: intCheckDigit = 1; break; } // check last digit if (varArray[17].toUpperCase() != intCheckDigit) { //error = "身份证效验位错误!...正确为: " + intCheckDigit + "."; //alert(error); return false; } } else{ //length is 15 //check date var date6 = idNumber.substring(6,12); if (checkDate(date6) == false) { //alert("身份证日期信息有误!."); return false; } } //alert ("Correct."); return true; } /** * 身份证日期部分验证函数 */ function checkDate(date) { return true; } /** * 邮政编码 */ function isPostCode(s) { var patrn=/(^[0-9]{6,6}$)/; if (!patrn.exec(s)) return false return true; } /** * 验证是否中文 * @return 非中文返回 false */ function isChinese(str) { str = str.replace(" ", ""); for (i=0;i()\[\]{}\s\x7f-\xff]*(?:[.,?]+[^;"'<>()\[\]{}\s\x7f-\xff]+)*)?/; return urlPattern.test(url.toLowerCase()); } /*******************************下拉框操作开始**********************************/ /** * 为下拉框添加选项 * @param obj 下拉框对象 * @param val 选项值 * @param text 选项文字 */ function appendItem(obj,val,text) { var elOptNew = document.createElement('option'); elOptNew.text = text; elOptNew.value = val; try { obj.add(elOptNew, null); // standards compliant; doesn't work in IE } catch(ex) { obj.add(elOptNew); // IE only } } /** * 移除下拉框的最后一个选项 * @param obj 下拉框对象 */ function removeLastItem(obj) { if (obj.length > 0) { obj.remove(obj.length - 1); } } /** * 移除下拉框的选中的选项 * @param obj 下拉框对象 */ function removeSelItem(obj) { var i; for (i = obj.length - 1; i>=0; i--) { if (obj.options[i].selected) { obj.remove(i); } } } /** * 清除下拉框的选中的选项 */ function clearItem(obj) { while (obj.length>0) { removeLastItem(obj); } } /** * 选中下拉列表框value为指定值的option */ function optionSelect(objSel,strValue) { var isSelected=false; if(objSel.options) { for(var oi=0;oi0&&event.srcElement.value.length>=letterCount) { // 超过长度,不能输入 event.returnValue=false; } if(65<=event.keyCode&&event.keyCode<=90) { // 大写字母保持不变 } else if(97<=event.keyCode&&event.keyCode<=122) { // 小写字母换成大写字母 //event.keyCode=(String.fromCharCode(event.keyCode).toUpperCase()).charCodeAt(0); event.keyCode=event.keyCode-32 } else { // 不是字母,不能输入 event.returnValue=false; } } /** * onkeypress调用 * 限制文本框只能输入不超过指定个数的数字,如果letterCount<=0没有个数限制 */ function inputNumOnly(letterCount) { if(letterCount>0&&event.srcElement.value.length>=letterCount) { // 超过长度,不能输入 event.returnValue=false; } else if(48<=event.keyCode&&event.keyCode<=57) { // 数字,可以输入 } else { // 不是数字,不能输入 event.returnValue=false; } } /** *身份证验证 *@param idcard * 身份证号 *@return 返回验证结果 * 0 身份证正确 * 1 身份证的位数不正确(非15、18) * 2 身份证号码出生日期超出范围或含有非法字符 * 3 身份证的校验位不正确 * 4 身份证地区非法 */ function checkIdcard(idcard){ var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"******",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"******",71:"台湾",81:"香港",82:"澳门",91:"国外"} var idcard,Y,JYM; var S,M; var idcard_array = new Array(); idcard_array = idcard.split(""); //地区检验 if(area[parseInt(idcard.substr(0,2))]==null) { return 4; } //身份号码位数及格式检验 switch(idcard.length){ case 15: if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){ ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性 } else { ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性 } if(ereg.test(idcard)) { return 0; } else { return 2; } break; case 18: //18位身份号码检测 //出生日期的合法性检查 //闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9])) //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8])) if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){ ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式 } else { ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式 } if(ereg.test(idcard)){//测试出生日期的合法性 //计算校验位 S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3 ; Y = S % 11; M = "F"; JYM = "10X98765432"; M = JYM.substr(Y,1);//判断校验位 if(M == idcard_array[17]) return 0; //检测ID的校验位 else return 3; } else return 2; break; default: return 1; break; } } /** * 检查输入的姓名是否中文 */ function ck_name(value_) { if(/[^\u4E00-\u9FA5]/gi.test(value_)){ if (/[\u4E00-\u9FA5]/gi.test(value_.substring(0,1)) && value_.indexOf("/")<=0 ) { return true; } if (value_.indexOf("/")>=0 && (/[^\u4E00-\u9FA5]/gi.test(value_.substring(0,value_.indexOf("/")))) && (/[^\u4E00-\u9FA5]/gi.test(value_.substring((value_.indexOf("/") + 1),value_.length))) ) { return true; } return false; }else{ return true; } } /** * 解析日期字符串到日期对象 */ function parseDate(s) { var reg=new RegExp("[^0-9-]","") if(s.search(reg)>=0)return today; var ss=s.split("-"); if(ss.length!=3)return today; if(isNaN(ss[0])||isNaN(ss[1])||isNaN(ss[2]))return today; return new Date(parseInt(ss[0]),parseInt(ss[1]*1)-1,parseInt(ss[2]*1)); } /** * 写入名称为cookieName,带失效日期的 cookie * var nowDate=new Date(""); * var expireDate=??; * ResponseCookies("cookieName","cookieValue",expireDate); * 读取名称为cookieName的 cookie * RequestCookies("cookieName","defaultValue"); */ /** * 写入 cookie * 不区分 cookieName 的大小写 * 不考虑子键 */ function ResponseCookies(cookieName, cookieValue, expires) { if(expires) { // 指定了 expires document.cookie = ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue) + "; expires=" + expires.toGMTString(); } else { document.cookie = ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue); } } /** * 获取并返回与 cookieName 同名的 cookie 名称,允许大小写不同 * 如果不存在这样的 cookie,就返回 cookieName */ function ResponseCookies_GetCookieName(cookieName) { var lowerCookieName = cookieName.toLowerCase(); var cookieStr = document.cookie; if (cookieStr == "") { return cookieName; } var cookieArr = cookieStr.split("; "); var pos = -1; for (var i=0; i 0) { if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName) { return cookieArr[i].substring(0, pos); } } } return cookieName; } /** * 获取并返回 cookie 值 * 不区分 cookieName 的大小写 * dfltValue 为默认返回值 * 不考虑子键 */ function RequestCookies(cookieName, dfltValue) { var lowerCookieName = cookieName.toLowerCase(); var cookieStr = document.cookie; if (cookieStr == "") { return dfltValue; } var cookieArr = cookieStr.split("; "); var pos = -1; for (var i=0; i 0) { if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName) { return unescape(cookieArr[i].substring(pos+1, cookieArr[i].length)); } } } return dfltValue; }