`
mamaoyuan625
  • 浏览: 173469 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

通用验证javascript

阅读更多
//****************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]);
      }

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics