//****************VARIABLE DESCRIPTION*******************// // s=字符串 // label_name = 输入框标识 // allow_len = 允许长度 // objField = 字段对象 (document.formname.field) //******************FUNCTION INCLUDED********************// //trim(s) //删除多余空格 [字符串] //isEmpty(s) //是否为空 [布尔] //isNum(s) //是否为数字串(0-9) [布尔] //isCharNum(s) //是否字符串(0-9a-zA-Z) [布尔] //isInteger(s) //正整数 //getTextLen(s) //获取字符串长度,汉字按2位计算 [数字] //chkLen(objField, allow_len, label_name,defaultEmpty) //校验字符串长度,汉字按2位计算 [布尔] //chkLenEquals(objField, allow_len, label_name,defaultEmpty) //校验字符串长度是否和要求相同,汉字按2位计算 [布尔] //chkEmail(objField,label_name,defaultEmpty) //校验E_mail [布尔] //chkNum(objField,label_name,defaultEmpty) //校验数字串(0-9) //chkCharNum(objField,label_name,defaultEmpty) //校验字符串(0-9a-zA-Z) //chkPhone(objField,label_name,defaultEmpty) //校验电话(0000-0000-0000) //chkPostCode(objField,label_name,defaultEmpty) //校验邮编 //chkInteger(objField,label_name,defaultEmpty) //校验正整数 //chkWhiteSpace(objField,label_name) //检验空格 //chkFloat(objField,allow_len,dec,label_name,allow_zero,defaultEmpty) //校验符点数 //(dec=小数点后的位数 allow_zero=是否允许为零) //isFloatLength (s,label_name,allow_len, dec,floatErrMes) //isNumeric(s) //检验s是否是数字 //******************FUNCTION HEADER**********************// // BOI, followed by one or more digits, followed by EOI. var reInteger = /^\d+$/ // BOI, followed by one or more whitespace characters, followed by EOI. var reWhitespace = /^\s+$/ // decimal point character differs by language and culture var decimalPointDelimiter = "." // field bgcolor var fieldbg="#ddd"; //*****************FUNCTION MAIN**************************// function isNum(s) { var str = /^[0-9]*$/; return (str.test(s)); } function isCharNum(s) { var str = /^[0-9a-zA-Z]*$/; return (str.test(s)); } //is Integer? function isInteger (s) { var reInteger = /^\d+$/ if (!reInteger.test(s) || parseInt(s,10)==0) return false; return true } function getTextLen(s) { var ilen=0; var chr; for(i=0;i<s.length;i++) { chr=escape(s.charAt(i)); if(chr.length==6) ilen+=2; else ilen++; } //End for return ilen; } function chkSeleFirst(objField, label_name) { if (objField.selectedIndex==0) { setFieldProperty(objField); alert ("请选择 " + label_name+" ."); return false; } return true; } function chkNumeric(objField,label_name,defaultEmpty) { var s = objField.value; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); objField.value = ""; return false; } else return true; } if (isNaN(s)) { setFieldProperty(objField); alert ("请输入 " + label_name+" 中输入数字."); objField.value = ""; return false; } return true; } function chkLen(objField, allow_len, label_name,defaultEmpty) { var s = objField.value; if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); objField.value = ""; return false; } else return true; } if (getTextLen(s) > allow_len) { setFieldProperty(objField); alert(label_name + " 的长度不能超过 " + allow_len + " 个字节,请重新填写."); objField.value = ""; return false; } return true; } function chkFckeditorLen(objField, allow_len, label_name,defaultEmpty) { var oEditor = FCKeditorAPI.GetInstance(objField) ; var content = oEditor.GetXHTML(); if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; if(isEmpty(content)) { if (!defaultEmpty) { oEditor.Focus(); alert ("请输入 " + label_name+" ."); return false; } else return true; } if (getTextLen(content) > allow_len) { oEditor.Focus(); alert(label_name + " 的长度不能超过 " + allow_len + " 个字节,请重新填写."); return false; } return true; } function chkLenEquals(objField, allow_len, label_name,defaultEmpty) { var s = objField.value; if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); objField.value = ""; return false; } else return true; } if (getTextLen(s) != allow_len) { setFieldProperty(objField); alert(label_name + " 的长度必须为 " + allow_len + " 个字节,请重新填写."); objField.value = ""; return false; } return true; } function chkEmail(objField,label_name,defaultEmpty) { var s = objField.value; var str = /^[_\.0-9a-zA-Z]+@([0-9a-zA-Z]+\.)+[a-zA-Z]{2,3}$/; if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); return false; } else return true; } if (!str.test(s)) { setFieldProperty(objField); alert(label_name+" 输入不合法,请输入正确的Email."); return false; } return true; } function chkNum(objField,label_name,defaultEmpty) { if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; var s = objField.value; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); objField.value = ""; return false; } else return true; } if (!isNum(s)) { setFieldProperty(objField); alert(label_name+" 输入不合法,只能输入数字."); objField.value = ""; return false; } return true; } function chkCharNum(objField,label_name,defaultEmpty) { if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; var s = objField.value; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); return false; } else return true; } if (!isCharNum(s)) { setFieldProperty(objField); alert(label_name+" 输入不合法,只能输入数字和字母."); return false; } return true; } function chkPhone(objField,label_name,defaultEmpty) { if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; var s = objField.value; var str=/^[0-9-;,]*$/; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); return false; } else return true; } if(s.length<6) { setFieldProperty(objField); alert(label_name+" 输入不合法,请输入正确的电话号码."); return false; } if(s.length>15) { setFieldProperty(objField); alert(label_name+" 输入不合法, 不能大于15位."); return false; } if (!str.test(s)) { setFieldProperty(objField); alert(label_name+" 输入不合法,请输入正确的电话号码."); return false; } return true; } function chkPostCode(objField,label_name,defaultEmpty) { if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; var s = objField.value; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); return false; } else return true; } if(!isNum(s)||s.length!=6) { setFieldProperty(objField); alert(label_name+" 输入不合法."); return false; } return true; } function chkInteger(objField,label_name,defaultEmpty) { if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; var s = objField.value; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); objField.value = "" return false; } else return true; } if (!reInteger.test(s) || parseInt(s,10)==0) { setFieldProperty(objField); alert ("请在 " + label_name+" 中输入正整数."); objField.value = ""; return false; } return true; } function chkWhiteSpace(objField,label_name) { var s = objField.value; if (isEmpty(s) || reWhitespace.test(s)) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); return false; } return true; } function chkFloat(objField,allow_len,dec,label_name,allow_zero,defaultEmpty,allowNegative) { if (typeof(defaultEmpty) == "undefined") defaultEmpty = true; if (typeof(allow_zero) == "undefined") allow_zero = true; if (typeof(allowNegative) == "undefined") allowNegative = false; var s = objField.value; var i; var floatErrMes = ""; if(isEmpty(s)) { if (!defaultEmpty) { setFieldProperty(objField); alert ("请输入 " + label_name+" ."); objField.value = ""; return false; } else return true; } for ( i=0; i<(allow_len-dec); i++) { floatErrMes += "9"; } floatErrMes +="."; for ( i=0; i<dec; i++) { floatErrMes += "9"; } //check numeric if ( isFloatNaN(s,label_name)) { setFieldProperty(objField); objField.value = ""; return false; } s=s.toString(); //check positive value if (!allowNegative) { if (s.charAt(0) == '-') { setFieldProperty(objField); alert("请在 " + label_name+" 中输入正数."); objField.value = ""; return false; } } if (!allow_zero && parseFloat(s) == 0) { setFieldProperty(objField); alert("请在 " + label_name+" 中输入非零数字."); objField.value = ""; return false; } //check if the length of the number is correct if (!isFloatLength(s,label_name,allow_len,dec,floatErrMes,allowNegative)) { setFieldProperty(objField); objField.value = ""; return false; } // All characters are numbers. return true; } function isFloatLength (s,label_name,allow_len, dec,floatErrMes,allowNegative) { var seenDecimalPoint = false; var isNegative = false; var posDecimalPoint; if (allowNegative) { if (s.charAt(0) == '-') { s = s.substring(1,s.length); isNegative = true; } } for (i = 0; i < s.length; i++) { // Check that current character is number. var c = s.charAt(i); if ((c == decimalPointDelimiter) && !seenDecimalPoint) { seenDecimalPoint = true; posDecimalPoint = i; break; } } //End For if (seenDecimalPoint == true) { if ((s.length - posDecimalPoint - 1) > dec || posDecimalPoint==(s.length-1)) { //right too long alert("请在"+label_name+"中输入数字, 包括"+dec+"位小数."); return false; } else if (posDecimalPoint > (allow_len - dec) ) { // left too long if (isNegative) alert("请注意 "+label_name+" 的值不能小于 -"+floatErrMes+"."); else alert("请注意 "+label_name+" 的值不能大于 "+floatErrMes+"."); return false; } //else } else if (s.length > allow_len - dec) { // left too long if (isNegative) alert("请注意 "+label_name+" 的值不能小于 -"+floatErrMes+"."); else alert("请注意 "+label_name+" 的值不能大于 "+floatErrMes+"."); return false; } //else return true; } //is numeric? function isFloatNaN (s,label_name) { if (isNaN(s)) { alert("请在"+label_name+" 中输入数字."); return true; } return false; } //检验s是否是非负数字 function isNumeric(s){ s = trim(s); if(s=="") return false; if(!isNaN(s) && s>0) return true; return false; } function setFieldProperty(objField) { if (objField.type.toLowerCase() != "hidden") { objField.focus(); objField.style.background=fieldbg; } } // 验证输入的日期 function strDateTime(str) { if (str == "") { return true; } var r = str.match(/^(\d{4})(-|\/)(\d{2})\2(\d{2})$/); if(r==null)return false; var d= new Date(r[1], r[3]-1, r[4]); return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); }