www.pudn.com > JSonCommit.rar > validate.js


/* 
非空校验  :                            isNull() 
是否是数字:                       isNumber(field) 
trim函数:                        trim() lTrim() rTrim() 
校验字符串是否为空:                 checkIsNotEmpty(str) 
校验字符串是否为整型:               checkIsInteger(str) 
校验整型最小值:                    checkIntegerMinValue(str,val) 
校验整型最大值:                    checkIntegerMaxValue(str,val)  
校验整型是否为非负数:               isNotNegativeInteger(str) 
校验字符串是否为浮点型:             checkIsDouble(str)  
校验字符串是否为日期型:             checkIsValidDate(str) 
校验两个日期的先后:                checkDateEarlier(strStart,strEnd) 
校验字符串是否为email型:           checkEmail(str) 
校验字符串是否为中文:               checkIsChinese(str) 
计算字符串的长度,一个汉字两个字符:   realLength() 
判断下拉列表框是否取值:            getComboValue(field)  
 
*/ 
 
//================================================================= 
//function:isNull() 
//非空校验 
//================================================================== 
function isNull(aForm,fieldArray) 
{	 
	if (confirm("您确认要进行此操作吗?")) 
	{ 
		for (var i=0;i<(aForm.elements.length);i++) 
		{ 
			 var el=aForm.elements[i]; 
			 for(var j=1;j<=fieldArray.length;j++) 
			 { 
			 	if (el.name==fieldArray[j]) 
	        	{ 
	        		 
		 	 		if(trim(el.value)=="") 
		 	 		{ 
		 	 			        		 
						alert("焦点处的值不能为空,请输入"+fieldArray[j]+"!");	 
						el.focus(); 
						return true; 
					} 
	 	 	    }	 
	 	 	} 
	 	 } 
	 	 return false;  
    }			 
	else 
	{ 
		return true; 
	}	 
} 
 
//================================================================== 
//  function isNumber(field) 
//	判断input text 的是否是数字.  
//	return: true or false  field允许为空 
//================================================================== 
 
function isNumber(field){ 
	var fieldvalue = trim(field.value); 
	var charcode; 
	 
	for(var i=0; i 57) && charcode != 46) 
			return false; 
	} 
	return true; 
} 
 
 
 
function LTrim(str) 
{  
    var whitespace = new String(" \t\n\r"); 
    var s = new String(str); 
    if (whitespace.indexOf(s.charAt(0)) != -1) 
    { 
       var j=0, i = s.length; 
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1) 
        { 
           j++; 
        } 
        s = s.substring(j, i); 
    } 
    return s; 
} 
function RTrim(str) 
{ 
    var whitespace = new String(" \t\n\r"); 
    var s = new String(str); 
    if (whitespace.indexOf(s.charAt(s.length-1)) != -1) 
    { 
        var i = s.length - 1; 
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) 
        { 
            i--; 
        } 
        s = s.substring(0, i+1); 
    } 
    return s; 
} 
function trim(str) 
{ 
    return RTrim(LTrim(str)); 
} 
 
 
 
/********************************** Empty **************************************/ 
/** 
*校验字符串是否为空 
*返回值: 
*如果不为空,定义校验通过,返回true 
*如果为空,校验不通过,返回false        参考提示信息:输入域不能为空! 
*/ 
function checkIsNotEmpty(str) 
{ 
    if(trim(str)== "") 
        return false; 
    else 
        return true; 
} 
/*--------------------------------- Empty --------------------------------------*/ 
/********************************** Integer *************************************/ 
/** 
*校验字符串是否为整型 
*返回值: 
*如果为空,定义校验通过,      返回true 
*如果字串全部为数字,校验通过,返回true 
*如果校验不通过,              返回false     参考提示信息:输入域必须为数字! 
*/ 
function checkIsInteger(str) 
{ 
    //如果为空,则通过校验 
    if(trim(str) == "") 
        return true; 
    var strr=trim(str); 
    if(/^(\-?)(\d+)$/.test(strr)) 
        return true; 
    else 
        return false; 
}//~~~ 
/** 
*校验整型最小值 
*str:要校验的串。  val:比较的值 
* 
*返回值: 
*如果为空,定义校验通过,                返回true 
*如果满足条件,大于等于给定值,校验通过,返回true 
*如果小于给定值,                        返回false              参考提示信息:输入域不能小于给定值! 
*/ 
function checkIntegerMinValue(str,val) 
{ 
    //如果为空,则通过校验 
    if(str == "") 
        return true; 
    if(typeof(val) != "string") 
        val = val + ""; 
    if(checkIsInteger(str) == true) 
    { 
        if(parseInt(str,10)>=parseInt(val,10)) 
            return true; 
        else 
            return false; 
    } 
    else 
        return false; 
}//~~~ 
/** 
*校验整型最大值 
*str:要校验的串。  val:比较的值 
* 
*返回值: 
*如果为空,定义校验通过,                返回true 
*如果满足条件,小于等于给定值,校验通过,返回true 
*如果大于给定值,                        返回false       参考提示信息:输入值不能大于给定值! 
*/ 
function checkIntegerMaxValue(str,val) 
{ 
    //如果为空,则通过校验 
    if(str == "") 
        return true; 
    if(typeof(val) != "string") 
        val = val + ""; 
    if(checkIsInteger(str) == true) 
    { 
        if(parseInt(str,10)<=parseInt(val,10)) 
            return true; 
        else 
            return false; 
    } 
    else 
        return false; 
}//~~~ 
/** 
*校验整型是否为非负数 
*str:要校验的串。 
* 
*返回值: 
*如果为空,定义校验通过,返回true 
*如果非负数,            返回true 
*如果是负数,            返回false               参考提示信息:输入值不能是负数! 
*/ 
function isNotNegativeInteger(str) 
{ 
    //如果为空,则通过校验 
    if(str == "") 
        return true; 
    if(checkIsInteger(str) == true) 
    { 
        if(parseInt(str,10) < 0) 
            return false; 
        else 
            return true; 
    } 
    else 
        return false; 
}//~~~ 
/*--------------------------------- Integer --------------------------------------*/ 
/********************************** Double ****************************************/ 
/** 
*校验字符串是否为浮点型 
*返回值: 
*如果为空,定义校验通过,      返回true 
*如果字串为浮点型,校验通过,  返回true 
*如果校验不通过,              返回false     参考提示信息:输入域不是合法的浮点数! 
*/ 
function checkIsDouble(str) 
{ 
    //如果为空,则通过校验 
    if(trim(str) == "") 
        return true; 
    //如果是整数,则校验整数的有效性 
    if(str.indexOf(".") == -1) 
    { 
        if(checkIsInteger(str) == true) 
            return true; 
        else 
            return false; 
    } 
    else 
    { 
        if(/^(\-?)(\d+)(.{1})(\d+)$/g.test(trim(str))) 
            return true; 
        else 
            return false; 
    } 
}//~~~ 
 
/*--------------------------------- Double ---------------------------------------*/ 
/********************************** date ******************************************/ 
/** 
*校验字符串是否为日期型 
*返回值: 
*如果为空,定义校验通过,           返回true 
*如果字串为日期型,校验通过,       返回true 
*如果日期不合法,                   返回false    参考提示信息:输入域的时间不合法!(yyyy-MM-dd) 
*/ 
function checkIsValidDate(str) 
{ 
    //如果为空,则通过校验 
    if(trim(str) == "") 
        return true; 
    var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g; 
    if(!pattern.test(str)) 
        return false; 
    var arrDate = str.split("-"); 
    if(parseInt(arrDate[0],10) < 100) 
        arrDate[0] = 2000 + parseInt(arrDate[0],10) + ""; 
    var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]); 
   // date.getYear() == arrDate[0] 
    //   && 
    if( date.getMonth() == (parseInt(arrDate[1],10) -1)+"" 
       && date.getDate() == arrDate[2]) 
        return true; 
    else 
        return false; 
} 
/* 
function checkIsValidDate(aForms,fieldArray) 
{ 
    //如果为空,则通过校验 
    for (var i=0;i<(aForms.elements.length);i++) 
	{ 
		 var el=aForms.elements[i]; 
		 for(var j=0;j parseInt(d2,10)) 
       return false; 
    else 
       return true; 
}//~~~ 
/*--------------------------------- date -----------------------------------------*/ 
/********************************** email *****************************************/ 
/** 
*校验字符串是否为email型 
*返回值: 
*如果为空,定义校验通过,           返回true 
*如果字串为email型,校验通过,      返回true 
*如果email不合法,                  返回false    参考提示信息:Email的格式不正確! 
*/ 
function checkEmail(str) 
{ 
    //如果为空,则通过校验 
    if(trim(str) == "") 
        return true; 
    if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1 
        || str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1) 
        return false; 
    else 
        return true; 
}//~~~ 
/*--------------------------------- email ----------------------------------------*/ 
/********************************** chinese ***************************************/ 
/** 
*校验字符串是否为中文 
*返回值: 
*如果为空,定义校验通过,           返回true 
*如果字串为中文,校验通过,         返回true 
*如果字串为非中文,             返回false    参考提示信息:必须为中文! 
*/ 
function checkIsChinese(str) 
{ 
    //如果值为空,通过校验 
    if (str == "") 
        return true; 
    var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi; 
    if (pattern.test(str)) 
        return true; 
    else 
        return false; 
} 
 
 
 
//判断下拉列表框是否取值 
function getComboValue(field) 
{ 
	if (document.getElementById(field).value=="") 
	{ 
		alert('请选择'); 
		document.forms[0].field.focus(); 
		return; 
	}	 
} 
//是否为有效年 
function isYear(aForm,field) 
{ 
		for (var i=0;i<(aForm.elements.length);i++) 
		{ 
			 var el=aForm.elements[i]; 
			  	if (el.name==field) 
	        	{	        		 
		 	 		if (document.getElementById(field).value>=1900 && document.getElementById(field).value<=2053) 
					{ 
		 
					} 
					else 
					{ 
						//alert('当前年份无效!'); 
						//aForm.field.focus(); 
						return false; 
					} 
	 	 	}	 
	 	 	 
	 	 } 
	 	 return true;	  
} 
function JHshNumberText() 
{ 
  if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) 
  || (window.event.keyCode == 13) || (window.event.keyCode == 46) 
  || (window.event.keyCode == 45))) 
  { 
          window.event.keyCode = 0 ; 
   } 
}