//****************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]);
}