var _IDCARD_MSG=''; //只能录入身份证号码 function FWidcard(obj){ var str = obj.value; if(str==''){return;} if(!FWidcardCheck(str)){ FWvalidateTip(obj,_IDCARD_MSG); }else{ if(str.length==15){ obj.value = FWidcar15to18(str); } } } /** * 只能录入中文 * @param obj dom对象 * @returns {Boolean} 校验成功与否 */ function FWchiness(obj){ var str = obj.value; var sWord =""; var strn =""; var iLen = str.length; if(str==''){return;} if(/[^\u4E00-\u9FA5]/gi.test(str)){ FWvalidateTip(obj,'此输入框只能录入中文!'); return false; } for(i=0;i"12"){ FWvalidateTip(obj,'此输入框只能录入年月!'); obj.value=''; return false; } return true; } //校验日期是否合法 function FWdatebox(obj,fwformat){ var reg; var arry; var sYear,sMonth,sDay; var str = obj.value; if(str==''){return true;} if(fwformat==''){fwformat='yyyy-mm-dd';} if(fwformat=='yyyy-mm-dd'||fwformat=='YYYY-MM-DD'){ arry = str.split('-'); if(arry.length==3){ sYear =arry[0]; sMonth =arry[1]; sDay =arry[2]; if(sDay.length==1){sDay='0'+sDay;} if(sMonth.length==1){sMonth='0'+sMonth;} str=sYear+'-'+sMonth+'-'+sDay; } } if(fwformat=='yyyy/mm/dd'||fwformat=='YYYY/MM/DD'){ arry = str.split('/'); if(arry.length==3){ sYear =arry[0]; sMonth =arry[1]; sDay =arry[2]; if(sDay.length==1){sDay='0'+sDay;} if(sMonth.length==1){sMonth='0'+sMonth;} str=sYear+'/'+sMonth+'/'+sDay; } } if(fwformat=='dd-mm-yyyy'||fwformat=='DD-MM-YYYY'){ arry = str.split('-'); if(arry.length==3){ sYear =arry[2]; sMonth =arry[1]; sDay =arry[0]; if(sDay.length==1){sDay='0'+sDay;} if(sMonth.length==1){sMonth='0'+sMonth;} str=sDay+'-'+sMonth+'-'+sYear; } } if(fwformat=='dd/mm/yyyy'||fwformat=='DD/MM/YYYY'){ arry = str.split('/'); if(arry.length==3){ sYear =arry[2]; sMonth =arry[1]; sDay =arry[0]; if(sDay.length==1){sDay='0'+sDay;} if(sMonth.length==1){sMonth='0'+sMonth;} str=sDay+'/'+sMonth+'/'+sYear; } } if(!FWdateFormat(str,fwformat)){ FWvalidateTip(obj,'输入的日期不正确 格式为 ' + fwformat); obj.value=''; return false; }else{ obj.value = str; } return true; } /** * 日期时间校验 * @param obj 日期时间输入对象 * @returns {Boolean} 校验通过与否 */ function FWdatetime(obj){ var fwformat='yyyy-mm-dd'; var arry; var str = obj.value; var sDate =""; var sTime =""; if(str==''){return true;} arry =str.split(' '); if(arry.length!=2){ FWvalidateTip(obj,'输入的时间不正确 格式为 yyyy-mm-dd hh:mm:ss'); obj.value=''; return false; } sDate = arry[0]; sTime = arry[1]; if(!FWdateFormat(sDate,fwformat)){ FWvalidateTip(obj,'录入的时间不正确 格式为 yyyy-mm-dd hh:mm:ss'); obj.value=''; return false; } if(!FWtimeFormat(sTime)){ FWvalidateTip(obj,'时间不正确 格式为 yyyy-mm-dd hh:mm:ss'); obj.value=''; return false; } return true; } //只能录入时间 function FWtimebox(obj){ var arry; var reg; var bTF=false; var sHour =""; var sMinute =""; var str = obj.value; if(str==''){return;} if(str.length<5||str.length>8){ bTF = false; } if(str.length==5){ str=str+":00"; } if(bTF){ reg= /^([0-2][0-9][:][0-6][0-9][:][0-6][0-9])$/; bTF = reg.test(str); } bTF = FWtimeFormat(str); if(!bTF){ FWvalidateTip(obj,'时间不正确 格式为 hh:mm:ss'); obj.value=''; return false; } obj.value= str; return true; } function FWtimeFormat(str){ var reg; var arry; var sHour; var sMinute; var sSecond; var iHour=0; var iMinute=0; var iSecond=0; reg= /^([0-2][0-9][:][0-6][0-9][:][0-6][0-9])$/; if(!reg.test(str)){ return false; } arry = str.split(":"); sHour = arry[0]; sMinute = arry[1]; sSecond = arry[2]; iHour = parseInt(sHour,10); iMinute = parseInt(sMinute,10); iSecond = parseInt(sSecond,10); if(iHour<0||iHour>24){return false;} if(iMinute<0||iMinute>60){return false;} if(iSecond<0||iSecond>60){return false;} return true; } //校验日期的格式 // yyyy-mm-dd、yyyy/mm/dd、yyyymmdd、 // dd-mm-yyyy、 dd/mm/yyyy、ddmmyyyy function FWdateFormat(str,fwformat){ var reg; var arry; var sYear,sMonth,sDay; //默认的格式 if(fwformat=='yyyy-mm-dd'||fwformat=='YYYY-MM-DD'||fwformat==''){ arry = str.split('-'); if(arry.length==3){ sYear =arry[0]; sMonth =arry[1]; sDay =arry[2]; str=sYear+'-'+sMonth+'-'+sDay; } reg= /^([1-2][0-9]{3}[-][0-1][0-9][-][0-3][0-9])$/; if(fwformat==''){fwformat='yyyy-mm-dd';} } //yyyymmdd if(fwformat=='yyyymmdd'||fwformat=='YYYYMMDD'){ if(str.length==8){ sYear =str.substr(0,4); sMonth =str.substr(4,2); sDay =str.substr(6,2); } reg= /^([1-2][0-9]{3}[0-1][0-9][0-3][0-9])$/; } // dd-mm-yyyy if(fwformat=='dd-mm-yyyy'||fwformat=='DD-MM-YYYY'){ arry = str.split('-'); if(arry.length==3){ sYear =arry[2]; sMonth =arry[1]; sDay =arry[0]; str=sDay+'-'+sMonth+'-'+sYear; } reg= /^([0-3][0-9][-][0-1][0-9][-][1-2][0-9]{3})$/; } //ddmmyyyy if(fwformat=='ddmmyyyy'||fwformat=='DDMMYYYY'){ if(str.length==8){ sYear =str.substr(4,4); sMonth =str.substr(2,2); sDay =str.substr(0,2); } reg= /^([0-3][0-9][0-1][0-9][1-2][0-9]{3})$/; } if(!reg.test(str)){ return false; } if(!FWisDate(sYear,sMonth,sDay)){ return false; }else{ return true; } } //校验当前的日期是否合法 function FWisDate(sYear,sMonth,sDay){ var iYear=0; var iMonth=0; var iDay=0; iYear = parseInt(sYear,10); iMonth = parseInt(sMonth,10); iDay = parseInt(sDay,10); var date = new Date(iYear, iMonth - 1, iDay); if (date.getFullYear() != iYear || date.getMonth() + 1 != iMonth || date.getDate() != iDay) return false; // E.g. 31/02/* return true; } //校验身份证号码是否正确 function FWidcardCheck(fwstr){ var i; var reg; var temp; var format; var year,month,day; format = fwstr.length; reg= /^([0-9]{15}|[0-9]{17}[0-9]|[0-9]{17}[xX])$/; if(!reg.test(fwstr)){ _IDCARD_MSG="公民身份号码输入不合法"; return false; } if(format==18){ temp=fwstr.substring(6,10); year=parseInt(temp,10); if(year<1900 || year>2200){ _IDCARD_MSG="年份应介于1900与2200之间,请重新输入!"; return false; } } else if(format==15){ temp=fwstr.substring(6,8); year=parseInt(temp,10); if(year<00 || year>99){ _IDCARD_MSG="年份应介于00与99之间,请重新输入!"; return false; } } if(format==18){ temp=fwstr.substring(10,12); } else if(format==15){ temp=fwstr.substring(8,10); } month=parseInt(temp,10); if(month<1 ||month>12){ _IDCARD_MSG="月份必须介于1与12之间!"; return false; } if(format==18){ temp=fwstr.substring(12,14); } else if(format==15){ temp=fwstr.substring(10,12); } day=parseInt(temp,10); if((day==0)||(day>31)){ _IDCARD_MSG="日必须介于0与31之间!"; return false; }else if(day>28 && day<31){ if(month==2){ if(day!=29){ _IDCARD_MSG= year+"年"+month+"月无"+day+"日。"; return false; } else { if((year%4)!=0){ _IDCARD_MSG=year+"年"+month+"月无"+day+"日。"; return false; } else { if((year%100==0)&&(year%400!=0)){ _IDCARD_MSG=year+"年"+month+"月无"+day+"日。"; return false; } } } } } else if(day==31){ if((month==2)||(month==4)||(month==6)||(month==9)||(month==11)){ _IDCARD_MSG=month+"月无"+day+"日"; return false; } } //15位转18位 if(format==15){ fwstr = FWidcar15to18(fwstr); format = 18; } //18位 if(format==18){ i=(fwstr.substr(0,1)*7+fwstr.substr(1,1)*9+fwstr.substr(2,1)*10+fwstr.substr(3,1)*5+fwstr.substr(4,1)*8+fwstr.substr(5,1)*4+fwstr.substr(6,1)*2+fwstr.substr(7,1)*1+fwstr.substr(8,1)*6+fwstr.substr(9,1)*3+fwstr.substr(10,1)*7+fwstr.substr(11,1)*9+fwstr.substr(12,1)*10+fwstr.substr(13,1)*5+fwstr.substr(14,1)*8+fwstr.substr(15,1)*4+fwstr.substr(16,1)*2 )% 11 ; if(i>2)i=12-i; else if(i==2)i="X"; else if(i<2)i=1-i; if(fwstr.substr(17,1)==i){ return true; } else { _IDCARD_MSG="公民身份号码输入不合法,校验位错误! "; return false; } } } //身份证号码15位转18位 function FWidcar15to18(fwstr){ var getno=fwstr; if(getno.length==15){ var wi=new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); var ai=new Array(1,0,'X',9,8,7,6,5,4,3,2); var F1=getno.substr(0,6)+"19"+getno.substr(6,15); var F2=new Array(); F2=F1.split(""); var i=0; var j=0; var sum =0; for(i = 0 ; i<17; i++) { j = wi[i]*F2[i]; sum = sum + j; } sum=sum%11; F2[17]=ai[sum]; var F3=new String(); for(i=0;i<18;i++){ if(F2[i]=='X'){ F3=F3+"X"; break; } eval("F3=F3+"+F2[i]); } _IDCARD_MSG="身份证自动升位为"+F3; return F3; }else{ return fwstr; } } //框架的提示框 function FWalert(msg){ return alert(msg); // jQuery.fwmessager.show(msg); } //框架的提示框 function FWconfirm(msg,fn){ //jQuery.fwmessager.confirm(msg,fn); var fun = fun = window[fn]; if (window.confirm(msg)) { if(fun){ fun(true); } } else if(fun){ fun(false); } return false; } //只允许录入数值 e 为事件event function FWNumOnly(e){ //王码五笔字形无法录入数字的问题 if(event.keyCode==229){ return true; } //左移动 if(event.keyCode==37){ return true; } //右移动 if(event.keyCode==39){ return true; } //小键盘的数字区 if(e.keyCode >= 96 && e.keyCode <= 105){ return true; } //键盘的数字区 if ((e.keyCode >= 48 && e.keyCode <= 57 && e.ctrlKey == false && e.shiftKey == false)){ return true; } return false; } function FWelementValidate(ele){ readOnly = ele.readOnly; if (ele.vldStr==null){ return null; }else if(readOnly){ return null; } colName = ele.name;// 字段的名称 validStrs = ele.vldStr; if($(ele).hasClass('postbox')){ var s = ele.value; if(s.length>0&&s.length!=6){ return '邮政编码字段不合法!'; } } name_validStrs = validStrs.split('=');// 得到字段的中文名称 if (name_validStrs.length == 2){ colName = name_validStrs[0]; validStrs = name_validStrs[1]; pint=parseInt(ele.value,10); pfloat=parseFloat(ele.value,10); } tmpArray = validStrs.split('+'); for (j = 0; j < tmpArray.length; j ++){//检查该字段的校验类型 if (tmpArray[j] == 'nn' && isNull(ele.value) && ele.value == ''){//有非空却为空的字段 return '不能为空!'; }else if(tmpArray[j] == 'n' && !isNull(ele.value) && !isInteger(ele.value)){//有不合法的数字型字段 return '数字不合法!'; }else if(tmpArray[j] == 'h' && !isNull(ele.value)){//有不合法的身高型字段 if(isInteger(ele.value) && (pint>0) && (pint<300)){ }else{ return '身高不合法!'; } }else if(tmpArray[j] == 'w' && !isNull(ele.value)){//有不合法的体重型字段 if(isInteger(ele.value) && (pint>0) && (pint<200)){ }else{ return '体重不合法!'; } }else if(tmpArray[j] == 'a' && !isNull(ele.value)){//有不合法的年龄型字段 if(isInteger(ele.value) && (pint>0) && (pint<200)){ }else{ return '年龄不合法!'; } }else if(tmpArray[j] == 'alm' && !isNull(ele.value)){//有不合法的法定男性年龄型字段 if(isInteger(ele.value) && (pint>=16) && (pint<=60)){ }else{ return '法定男性年龄(16~60)不合法!'; } }else if(tmpArray[j] == 'alf' && !isNull(ele.value)){//有不合法的法定女性年龄型字段 if(isInteger(ele.value) && (pint>=16) && (pint<=55)){ }else{ return '法定女性年龄(16~55)不合法!'; } }else if(tmpArray[j] == 'p' && !isNull(ele.value)){//有不合法的邮政编码型字段 if(isInteger(ele.value) && (ele.value.length == 6)){ }else{ return '邮政编码不合法!'; } }else if(tmpArray[j]=='ml' && !isNull(ele.value) && !isEmail(ele.value)){//有不合法的邮箱字段 return 'email地址不合法!'; }else if(tmpArray[j] == 't' && !isNull(ele.value) && !isPhoneNumber(ele.value)){//有不合法的电话号码型字段 return '电话号码不合法!(格式示例:+86020-12345678)'; }else if(tmpArray[j] == 'd' && !isNull(ele.value) && !isDate3(ele.value)){//有不合法的日期型字典 return '日期不合法!(格式示例:2005-05-05)'; }else if(tmpArray[j] == 'dl' && !isNull(ele.value) && !isDateTime(ele.value)){//有不合法的(YYYY-MM-DD HH24:MI:SS)日期型字典 return '日期不合法!(格式示例:2005-05-05 23:59:59)'; }else if(tmpArray[j] == 'ds' && !isNull(ele.value) && !isDateShort(ele.value)){//有不合法的(YYYY-MM)日期型字典 return '日期不合法!(格式示例:2005-05)'; }else if(tmpArray[j] == 'dc' && !isNull(ele.value) && !isDateClose(ele.value)){//有不合法的(YYYYMM)日期型字典 return '日期不合法!(格式示例:200505)'; }else if(tmpArray[j] == 'dt' && !isNull(ele.value) && !isTime2(ele.value)){//有不合法的(HH24:MI:SS)时间型字典 return '日期不合法!(格式示例:23:59:59)'; }else if(tmpArray[j] == 'ac' && !isNull(ele.value) && !isAllChinese(ele.value)){//不合法的纯中文字符串 return '纯中文字符串不合法!'; }else if(tmpArray[j] == 'nc' && !isNull(ele.value) && hasChinese(ele.value)){//不合法的非中文字符串 return '非中文字符串不合法!'; }else if(tmpArray[j] == 'sfz' && !isNull(ele.value) && !IDCard_validate_na(ele.value)){//有不合法的身份证型字段 return '身份证不合法!'; }else if(tmpArray[j] == 's'&& !isNull(ele.value)){//有不合法的视力型字段 if(checkFloat(ele.value, 1) && (((pfloat>=0.1) && (pfloat<=1.5))||((pfloat>=4.0)&&(pfloat<=5.2))) ){ }else{ return '视力不合法!(示例:0.1~1.5 或者 4.0~5.2)'; } }else if(tmpArray[j] == 'c'&& !isNull(ele.value)){//有不合法的颜色型字段 var c1=ele.value.substr(0,1); var c2=ele.value.substr(1,6); if((ele.value.length==7) && (c1=="#") && (parseInt(c2,16)>=0) && (parseInt(c2,16)<=16777215)){ }else{ return '颜色不合法!'; } }else if(tmpArray[j].substr(0,1) == 'l'){ var tmpA1=new String(); tmpA=tmpArray[j]; var bitL; if(arguments.length==2){ if(options.valLenRule=='char'){ bitL=(ele.value).length; }else{ bitL=bitLength(ele.value); } }else{ bitL=bitLength(ele.value); } var tmpAL=tmpA.length; var pos1=tmpA.indexOf("("); var pos2=tmpA.indexOf("-"); var pos3=tmpA.indexOf(")"); var bitL1=tmpA.substring(pos1+1,pos2); var bitL2=tmpA.substring(pos2+1,pos3); if(bitL!=0){ var flag = true; if (pos2 < 0) { var bitL3 = tmpA.substring(pos1+1,pos3); if (isInteger(bitL3) && bitL > bitL3) { bitL1 = 0; bitL2 = bitL3; flag = false; } } else if(isInteger(bitL1)&&isInteger(bitL2)){ if(bitLbitL2){ flag = false; } } if (!flag) { return '长度不合法\n(字母或数字长度应在'+bitL1+'和'+bitL2+'之间,\n汉字长度应在'+Math.floor(parseInt(bitL1)/2)+'和'+Math.floor(parseInt(bitL2)/2)+'之间)'; } } }else if(tmpArray[j].indexOf('f')!=-1&&tmpArray[j]!='alf'){ //校验浮点型数据类型 var tmp = tmpArray[j]; var len = tmp.length; var ips = tmp.indexOf('f'); var str = ""; var val = ele.value; var ixu =0; //小数位数 var izu =0; //整数位数 if(val==''){ return null; }else{ val = val.replace(/,/gi,''); } $(ele).css("text-align","right"); if(!isFloat(val)){return '浮点数字不合法,必须为数值!';} if(ips!=-1&&(ips+1)!=len){ str = tmp.split('f'); ixu = parseInt(str[1],10); if(!checkFloat(val, ixu)){ return '浮点数字不合法,必须为'+ixu+'位小数!'; } }else{ var ips2 = val.indexOf('.'); if(ips2!=-1){ return '浮点数字不合法,不能带有小数!';} } str = tmp.split('f'); if(str[0]==''){ izu = 1; }else{ izu = parseInt(str[0],10); } str = val.split('.'); tmp = str[0]; len = tmp.length; if(parseInt(len,10) > izu){ return '浮点数字不合法,不能大于'+izu+'位整数!'; } //以下的处理主要是给数值补小数位 len = 0; if(str[1]!=null){ tmp = str[1]; len = tmp.length; } if(ixu!=len){ tmp =''; for(i=len;i