ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • validation
    카테고리 없음 2020. 7. 7. 00:48

    형식 지정을 위한 validation 만들기 및 적용

    /**
     * 
     */
    // 정규식 패턴 : http://ryanswanson.com/regexp/#start
    // 반복 : * 반복하지 않거나 1번 이상 반복
    // + 1번 이상 반복
    // {} 최소, 최대 반복횟수 또는 반복횟수 정의
    // {3} {1,3} {,3} {2,}
    // if(/^[a-z][0-9]{3}$/.test('a001')){}
    String.prototype.validationID = function() {
    	// <input type=text name=mem_id/>
    	// "a001".validationID();
    	return /^[a-z][0-9]{3}$/.test(this);
    
    };
    
    String.prototype.validationPWD = function() {
    	// "asdfasdf".validationPWD()
    	return /^[a-z0-9]{4,15}$/.test(this);
    };
    
    String.prototype.validationBIR = function() {
    	// "1999-01-01".validationBIR()
    	return /^(19\d{2}20\d{2})-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\d|3[0-1])$/
    			.test(this);
    };
    
    String.prototype.validationREGNO = function() {
    	// "111111 - 1111111".validationREGNO()
    	// 111111 111111 1(매직넘버)
    	// ****** ******
    	// 2+3+4+5+6+7+ 8+9+2+3+4+5 = 합
    	// (11-(합%11))%10 = 결과값
    	// if(결과값 == 매직넘버){유효} else {무효}
    
    	var moto = this.replace('-', '');
    	var magicNum = this.substring(12, 1);
    	var sum = 0;
    	var checkSum = '234567892345';
    	for (var i = 0; i < 12; i++) {
    		sum += moto.charAt(i) * checkSum.charAt(i);
    	}
    
    	var finalValue = (11 - (sum % 11)) % 10;
    
    	if (finalValue == parseInt(magicNum)) {
    		return true;
    	} else {
    		return false;
    	}
    };
    
    String.prototype.validationHOMETEL = function(){
    	// 02-111-1111 or 042-1111-1111
    	return /^0\d{1,2}-\d{3,4}-\d{4}$/.test(this);
    };
    
    String.prototype.validationCOMTEL = function(){
    	// 02-111-1111 or 042-1111-1111
    	return /^0\d{1,2}-\d{3,4}-\d{4}$/.test(this);
    };
    
    String.prototype.validationMAIL = function(){
    	// test@test.com or test@test.co.kr
    	return /^[a-z0-9]+@[a-z]+(\.[a-z]+){1,2}$/.test(this);
    };
    
    String.prototype.validationHP = function(){
    	return /^01(0|1|6|7|9)-\d{3,4}-\d{4}$/.test(this);
    };
    
    String.prototype.validationDONG = function(){
    	// '대흥동'.validationDONG()
    	return /^[가-힣]{2,6}$/.test(this);
    };
    
    String.prototype.validationPROD = function(){
    	return /^[P]{1}[0-9]{9}$/.test(this);
    };
    
    String.prototype.validationTITLE = function(){
    	return /^[가-힣a-zA-Z ]{1,30}$/.test(this);
    };
    
    String.prototype.validationNICKNAME = function(){
    	return /^[가-힣]{2,5}$/.test(this);
    };
    

     

    validation 적용

    <script type="text/javascript" src="${pageContext.request.contextPath }/js/common/validation.js"></script>
    	$('form[name=freeboardForm]').submit(function(){
    		if(!$('#bo_title').val().validationTITLE()){
    			return alertPrint("제목을 바르게 입력해주세요");
    		}
    		if(!$('#bo_nickname').val().validationNICKName()){
    			return alertPrint("대화명을 바르게 입력해주세요");
    		}
    		if(!$('#bo_pwd').val().validationPWD()){
    			return alertPrint("패스워드를 바르게 입력해주세요");
    		}
    		if(!$('#bo_mail').val().validationMAIL()){
    			return alertPrint("이메일을 바르게 입력해주세요"); // 여기서의 리턴은 어디로 보내는 거?
    		}
    		
    		var bo_content = $('#bo_content').summernote('code'); // 현재 웹 에디터에 내가 친 것들을 가져오기 위해서 사용 (코드로 가져온다.)
    		
    		$(this).append('<input type="hidden" name="bo_content" value="'+bo_content+'" />');
    		$(this).append('<input type="hidden" name="bo_writer" value="${LOGIN_MEMBERINFO.mem_id}" />');
    		$(this).append('<input type="hidden" name="bo_ip" value="${pageContext.request.remoteAddr}" />'); // remotAddr id 주소 가져오기
    		$(this).attr('action', '${insertFreeboardURI}'); // 이동
    		
    		return true;
    	});

    댓글

Designed by Tistory.