JS 인증 클래스

8370 단어 J#
방금 쓴 JS 인증 클래스
// 
Validate.validate = function(){
	var eleArray = document.getElementsByTagName("*"); 
	var i;
	for (i = 0; i < eleArray.length; i++){
		if (eleArray[i].type == 'text'){
				var v = new Validate();
				if (v.validateTest(eleArray[i]) == false){
					return false;
				}
		}
		if (eleArray[i].type == 'select-one'){
				var v = new Validate();
				if (v.validateSelect(eleArray[i]) == false){
					return false;
				}
		}
		if (eleArray[i].type == 'textarea'){
				var v = new Validate();
				if (v.validateTextarea(eleArray[i]) == false){
					return false;
				}
		}
		if (eleArray[i].type == 'radio'){
			var v = new Validate();
			if (v.validateRadio(eleArray[i]) == false){
				return false;
			}
		}
		if (eleArray[i].type == 'checkbox'){
			var v = new Validate();
			if (v.validateCheck(eleArray[i]) == false){
				return false;
			}
		}
	}
	return true;
}


// 
function Validate(){
	this.INTEGER = 'integer';  // 
	this.FLOAT = 'float';  // 
	this.EMAIL = 'email';  //email
	this.URL = 'url';  //url
	this.PHONENUM = 'phonenum';  //  0511-4405222   010-87888822
	this.POSTAL = 'postal';  // 
	this.IDCARD = 'idcard';  // 
	this.IP = 'ip';  //IP
	
	// text
	this.validateTest = function(obj){
		var vu = new ValidateUtil();
		// 
		if (obj.attributes.isNull != null){
			if (obj.attributes.isNull.value == 'false'){
				if (vu.isNull(obj) == false){
					return false;
				}
			}
		}
		// 
		if (obj.attributes.dataType != null){、
			// 
			if (obj.attributes.dataType.value == this.INTEGER){
				 if (vu.isInteger(obj) == false){
					 return false;
				 }
			}
			// 
			if (obj.attributes.dataType.value == this.FLOAT){
				 if (vu.isFloat(obj) == false){
					 return false;
				 }	 
			}
			//email
			if (obj.attributes.dataType.value == this.EMAIL){
				var strP = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
				if (vu.validateDataType(obj, strP) == false){
			 		return false;
				}
			}
			//url
			if (obj.attributes.dataType.value == this.URL){
				//var strP=/^(http\:\/\/)?([\w.]+)(\/[\w-\.\/\?%&=]*)?$/;
				//if (vu.validateDataType(obj, strP) == false){
				// 		return false;
				//}
			}
			//  0511-4405222   010-87888822
			if (obj.attributes.dataType.value == this.PHONENUM){
				var strP = /^\d{3}-\d{8}|\d{4}-\d{7}$/;
				if (vu.validateDataType(obj, strP) == false){
			 		return false;
				}
			}
			// 
			if (obj.attributes.dataType.value == this.POSTAL){
				var strP = /^[1-9]\d{5}(?!\d)$/;
				if (vu.validateDataType(obj, strP) == false){
			 		return false;
				}
			}
			// 
			if (obj.attributes.dataType.value == this.IDCARD){
				var strP = /^\d{15}|\d{18}$/;
				if (vu.validateDataType(obj, strP) == false){
			 		return false;
				}
			}
			//IP
			if (obj.attributes.dataType.value == this.IP){
				var strP = /^\d+\.\d+\.\d+\.\d+$/;
				if (vu.validateDataType(obj, strP) == false){
			 		return false;
				}
			}
		}
		return true;
	}
	
	// textarea
	this.validateTextarea = function(obj){
		var vu = new ValidateUtil();
		if (obj.attributes.isNull != null){
			if (obj.attributes.isNull.value == 'false'){
				return vu.isNull(obj);	
			}
		}
	}
	
	// select
	this.validateSelect = function(obj){
		var vu = new ValidateUtil();
		if (obj.attributes.isNull != null){
			if (obj.attributes.isNull.value == 'false'){
				return vu.isNull(obj);	
			}
		}
	}
	
	// radio
	this.validateRadio = function(obj){
		var vu = new ValidateUtil();
		if (obj.attributes.isNull != null){
			if (obj.attributes.isNull.value == 'false'){
				var radioObj = document.getElementsByName(obj.attributes.name.value);
				return vu.isNullRadio_CheckBox(radioObj);
			}
		}
	}
	// checkbox
	this.validateCheck = function(obj){
		var vu = new ValidateUtil();
		if (obj.attributes.isNull != null){
			if (obj.attributes.isNull.value == 'false'){
				var boxObj = document.getElementsByName(obj.attributes.name.value);
				//alert(vu.isNullRadio_CheckBox(boxObj));
				return vu.isNullRadio_CheckBox(boxObj);
			}
		}
	}
	
}
// 
function ValidateUtil(){
	// 
	this.isInteger = function(obj){
		if (obj.value == ''){
				return true;
		}
		var strP=/^\d+$/;
		if(!strP.test(obj.value)){
		  	alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_must_integer").value);
		  	obj.focus();
		  	return false;
		}
	  try{
		  if(parseInt(obj.value)!=obj.value){
		  	alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_must_integer").value);
		  	obj.focus();
	  		return false;
		  } 
	  }catch(ex){
	   	alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_must_integer").value);
	   	obj.focus();
	  	return false;
	  } 
		return true;
	}
	// 
	this.isFloat = function(obj){
		var strP=/^\d+(\.\d+)?$/;
		if(!strP.test(obj.value)){
	  	alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_must_float").value);
	  	obj.focus();
	  	return false;
	  }
	  try{
		  if(parseInt(oNum)!=obj.value){
		  	alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_must_float").value);
		  	obj.focus();
	  		return false;
		  } 
	  }catch(ex){
		alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_must_float").value);
		obj.focus();
		return false;
	  } 
		return true;
	}
	// NULL
	this.isNull = function(obj){
		if (obj.type=='text' || obj.type == 'textarea'){
			if(obj.value==''){
				alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_not_allow_null").value);
				obj.focus();
				return false;
			}	
		}else if (obj.type == 'select-one'){
			if (obj.options.selectedIndex == 0){
				alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("is_not_allow_null").value);
				obj.focus();
				return false;
			}
		}
		return true;
	}
	//  NULL 
	this.isNullRadio_CheckBox = function(objArray){
		for (j = 0; j < objArray.length; j++){
			if (objArray[j].checked == true){
				return true;
			}
		}
		alert((objArray[0].attributes.sname == null ? objArray[0].attributes.name.value : objArray[0].attributes.sname.value) + document.getElementById("is_not_allow_null").value);
		objArray[0].focus();
		return false;
	}
	// 
	this.validateDataType = function(obj, pattern){
		if(!pattern.test(obj.value)){
			alert((obj.attributes.sname == null ? obj.attributes.name.value : obj.attributes.sname.value) + document.getElementById("format_wrong").value);
			obj.focus();
			return false;
		}
		return true;
	}
}

좋은 웹페이지 즐겨찾기