YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > Javascript
검색
멤버이름    오토
비밀번호 
 

간단한 체크 함수들

페이지 정보

작성자 MintState 댓글 0건 조회 6,010회 작성일 08-11-17 11:22

본문

간단한 체크 함수들

/*
** 함수 목록
	Trim(st)							: 문자열 앞뒤 공란 제거 반환
	LTrim(st)							: 문자열 앞 공란 제거 반환
	RTrim(st)							: 문자열 뒤 공란 제거 반환
	checkRequiredField(obj, msg)		: 필수 항목 필드값 obj를 받아서 값(obj.value)이 비었을 경우 msg출력
	isDate(strDate)						: 1999-09-09, 1999/09/09 형식의 문자열 날짜값을 받아서 유효한지 체크
	checkLength(obj, maxLen, fieldName)	: 제한 길이를 넘는 값을 입력했는지 체크
	isnotNumber(obj, msg)				: 숫자값이 아닌지 체크
	checkSection(obj, start, end, msg)	: 숫자 데이터의 경우 범위를 넘지 않는지 체크
	checkPermission(obj, str, msg)		: 지정된 문자열에 포함된 문자만을 사용해서 입력했는지 체크
	checkDenial(obj, str, msg)			: 지정된 문자열에 포함된 문자를 제외하고 입력했는지 체크

** 함수명에 따른 반환값 설정 :
	- check 로 시작하는 함수명의 경우 정상처리 가능이면 true 반환
	- is 로 시작하는 경우 의미에 맞는 return 값을 반환 isDate() : 날짜인가? --> 날짜면 true, 아니면 false
	- isnot 로 시작하는 경우 의미에 맞는 return 값을 반환 isnotNumber() : 숫자가아닌가? --> 숫자가 아니면 true, 숫자면 false
*/

// Trim
function Trim(st){
	while(st && st.indexOf(" ") == 0) st = st.substring(1);
	while(st && st.lastIndexOf(" ") ==  st.length-1) st = st.substring(0, st.length-1);
	return st;
}

function LTrim(st){
	while(st && st.indexOf(" ") == 0) st = st.substring(1);
	return st;
}

function RTrim(st){
	while(st && st.lastIndexOf(" ") == 0) st = st.substring(1);
	return st;
}

// 필수항목 체크
function checkRequiredField(obj, msg){
	if(Trim(obj.value) == ""){
		if(msg != ""){
			alert(msg);
		}
		obj.focus();
		return false;
	}
	return true;
}

function checkRequiredField2(obj, msg, objFocus){
	if(Trim(obj.value) == ""){
		if(msg != ""){
			alert(msg);
		}
		objFocus.focus();
		return false;
	}
	return true;
}


// 날짜값 체크
function isDate(strDate){	
	var arrDate;
	var chkDate;
	
	if(strDate.indexOf("-") != -1){
		arrDate = strDate.split("-");
	}
	else{
		arrDate = strDate.split("/");
	}

	if(arrDate.length != 3){
		return false;
	}
	
	chkDate = new Date(arrDate[0] + "/" + arrDate[1] + "/" + arrDate[2]);
	if(isNaN(chkDate) == true ||
		(arrDate[1] != chkDate.getMonth() + 1 || arrDate[2] != chkDate.getDate())) {
		return false;
	}
	return true;
}


// 제한 길이 체크
//      * checkLength(obj, maxLen, fieldName)
//	    - obj : text or textarea object
//		- maxLen : 문자열 제한 길이
//			--> obj.value.length가 제한 길이 보다 짧으면 true, 길면 false
//      - fieldName : Error가 발생한 필드의 이름 
//			--> "" 로 넣으면..Alert 띄우지 않음.
function checkLength(obj, maxLen, fieldName){
	var i, len=0;
	var s = obj.value;
	
	// String 길이를 구하는 부분..
	for(i=0;i < s.length; i++) (s.charCodeAt(i) > 255)? len+=2:len++;
	
	// 길이 확인.	
	if (maxLen < len) {
		if(fieldName != "")
			alert(fieldName + "은(는) " + maxLen + "자를 넘을 수 없습니다(한글은 글자당 2자로 계산됩니다.)");
		obj.focus();
		return false;
	}
	return true;
}

// 숫자값 체크
function isnotNumber(obj, msg){
	if(isNaN(obj.value)){
		if(msg != ""){
			alert(msg);
		}
		obj.focus();
		return true;
	}
	return false;
}

// 숫자값 범위 체크
function checkSection(obj, start, end, msg){
	if(isnotNumber(obj, msg)){
		return false;
	}
	if(parseInt(obj.value) >= start && parseInt(obj.value) <= end){
		return true;
	}
	else{
		alert(msg);
		obj.focus();
		return false;
	}
}

// 지정된 문자 만으로 작성했는지 체크
function checkPermission(obj, str, msg){
	var s = obj.value;
	
	for(var i=0; i < s.length; i++){
		if(str.indexOf(s.charAt(i)) < 0){
			if(msg != "") alert(msg);
			obj.focus();
			return false;
		}
	}
	return true;
}

// 지정한 문자를 제외하고 작성했는지 체크
function checkDenial(obj, str, msg){
	var s = obj.value;
	
	for(var i=0; i < s.length; i++){
		if(str.indexOf(s.charAt(i)) > -1){
			if(msg != "") alert(msg);
			obj.focus();
			return false;
		}
	}
	return true;
}

// 이메일 체크
function isEmail(strEmail){
	var str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
	var arrEmail = strEmail.split('@');
	
	if(arrEmail.length == 2){
		if(Trim(arrEmail[0]) == "" || Trim(arrEmail[1]) == ""){
			return false;
		}
		else{
			var chkEmail = arrEmail[0].split('.');
			if(chkEmail.length > 1){
				for(var i=0; i < chkEmail.length; i++){
					for(var j=0; j < chkEmail[i].length; j++){
						if(str.indexOf(chkEmail[i].charAt(j)) < 0){
							return false;
						}
					}
				}
			}
			else{
				for(var j=0; j < arrEmail[0].length; j++){
					if(str.indexOf(arrEmail[0].charAt(j)) < 0){
						return false;
					}
				}
			}
						
			chkEmail = arrEmail[1].split('.');
			if(chkEmail.length > 1){
				for(var i=0; i < chkEmail.length; i++){
					for(var j=0; j < chkEmail[i].length; j++){
						if(str.indexOf(chkEmail[i].charAt(j)) < 0){
							return false;
						}
					}
				}
			}
			else{
				for(var j=0; j < arrEmail[0].length; j++){
					if(str.indexOf(arrEmail[0].charAt(j)) < 0){
						return false;
					}
				}
			}
			
			return true;
		}
	}
	else{
		return false;
	}
}

댓글목록

등록된 댓글이 없습니다.

Total 178건 9 페이지
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2019, YesYo.com MintState. ™