비정규식으로 유효성 검사 만들기

코드 죄수 2022. 9. 15. 23:10

이번에는 정규식을 이용하지 않고 회원가입 페이지에 유효성 검사를 하는 기능을 만들어 보았다.

 

 

function check(){
    var my_id = document.getElementById("my_id").value;
    var my_pw = document.getElementById("my_password").value;
    var ch_pw = document.getElementById("check_password").value;
    var my_email = document.getElementById("my_email").value;
    var my_name = document.getElementById("my_name").value;
    var birth = document.getElementById("birth").value;
    var inter = document.getElementsByName("interasting");
    var intro = document.getElementById("my_intro").value;
    var count=0;

    if(my_id.length < 4 || my_id.length > 12){
        alert("아이디를 4자에서 12자 사이로 입력 하세요!!");
        return false;
    }else{
        for(var i=0; i<my_id.length;i++){
            if(my_id.charCodeAt(i) >= 48 && my_id.charCodeAt(i) <= 57){ //숫자인지
                count++;
            }else if(my_id.charCodeAt(i) >= 65 && my_id.charCodeAt(i) <= 90){   //대문자인지
                count++;
            }else if(my_id.charCodeAt(i) >= 97 && my_id.charCodeAt(i) <= 122){  //소문자인지
                count++;
            }
        }
        if(my_id.length != count){  //문자 전부다 통과 했는지
            alert("아이디는 영문 대소문자와 숫자만 가능합니다!!");
            return false;
        }
        count = 0;
    }

    if(my_pw.length < 4 || my_pw.length > 12){
        alert("비밀번호를 4자에서 12자 사이로 입력 하세요!!");
        return false;
    }else{
        for(var i=0; i<my_pw.length;i++){
            if(my_pw.charCodeAt(i) >= 48 && my_pw.charCodeAt(i) <= 57){ //숫자인지
                count++;
            }else if(my_pw.charCodeAt(i) >= 65 && my_pw.charCodeAt(i) <= 90){   //대문자인지
                count++;
            }else if(my_pw.charCodeAt(i) >= 97 && my_pw.charCodeAt(i) <= 122){  //소문자인지
                count++;
            }
        }
        if(my_pw.length != count){  //문자 전부다 통과 했는지
            alert("비밀번호는 영문 대소문자와 숫자만 가능합니다!!");
            return false;
        }
        count = 0;
    }

    if(my_pw != ch_pw){
        alert("비밀번호가 서로 다릅니다!!");
        return false;
    }

    if(my_email.length == 0){
        alert("이메일을 입력 하세요!!");
        return false;
    }else{
        if(my_email.includes('@') && my_email.split("@").length-1 == 1){   //@ 을 포함 하는지 확인과 @이가 하나인지
            var stremail = my_email.split("@");
            for(var i=0; i<stremail[0].length; i++){    //@ 앞 부분 확인
                if(stremail[0].charCodeAt(i) >= 48 && stremail[0].charCodeAt(i) <= 57){ //숫자인지
                    count++;
                }else if(stremail[0].charCodeAt(i) >= 65 && stremail[0].charCodeAt(i) <= 90){   //대문자인지
                    count++;
                }else if(stremail[0].charCodeAt(i) >= 97 && stremail[0].charCodeAt(i) <= 122){  //소문자인지
                    count++;
                }
            }
            if(stremail[0].length != count){
                alert("이메일 형식을 지켜주세요!!");
                return false;
            }else{
                count = 0;
                if(my_email.includes('.') && my_email.split(".").length-1 <= 2){ //.을 포함 하는지 확인 .이 2개를 넘으면 안됨
                    var stremail2 = stremail[1].split(".");
                    for(var i=0; i<stremail2[0].length; i++){ 
                        if(stremail2[0].charCodeAt(i) >= 48 && stremail2[0].charCodeAt(i) <= 57){ //숫자인지
                            count++;
                        }else if(stremail2[0].charCodeAt(i) >= 97 && stremail2[0].charCodeAt(i) <= 122){  //소문자인지
                            count++;
                        }
                    }
                    if(stremail2[0].length != count){
                        alert("이메일 형식을 지켜주세요!!");
                        return false;
                    }else{
                        count = 0;
                        for(var i=0; i<stremail2.length-1; i++){
                            for(var j=0; j<stremail2[i+1].length; j++){
                                if(stremail2[0].charCodeAt(i) >= 97 && stremail2[0].charCodeAt(i) <= 122){  //소문자인지
                                    count++;
                                }
                            }
                            if(stremail2[i+1].length != count){
                                alert("이메일 형식을 지켜주세요!!");
                                return false;
                            }
                            count=0;
                        }
                    }
                }else{
                    alert("이메일 형식을 지켜주세요!!");
                    return false;
                }
            }
        }else{
            alert("이메일 형식을 지켜주세요!!");
            return false;
        }
    }


    if(my_name < 2){
        alert("이름을 다시 입력 하세요");
        return false;
    }else{
        for(var i=0; i<my_name.length;i++){
            if(my_name.charCodeAt(i) >= 65 && my_name.charCodeAt(i) <= 90){   //대문자인지
                count++;
            }else if(my_name.charCodeAt(i) >= 97 && my_name.charCodeAt(i) <= 122){  //소문자인지
                count++;
            }
        }
        if(my_name.length != count){    //영어를 입력하지 않았을때
            count = 0;
            for(var i=0; i<my_name.length;i++){
                if(my_name.charCodeAt(i) >= 44032 && my_name.charCodeAt(i) <= 55296){   //한글인지
                    count++;
                }
            }
            if(my_name.length != count){
                alert("이름을 다시 입력 하세요!!");
                return false;
            }
            count = 0;
        }
    }

    if(birth.length <4){
        alert("생일 년도 4자리를 입력해 주세요");
        return false;
    }else{
        count = 0;
        for(var i=0; i<birth.length;i++){
            if(birth.charCodeAt(i) >= 48 && birth.charCodeAt(i) <= 57){
                count++;
            }
        }
        if(birth.length != count){
            alert("생일은 숫자만 입력해 주세요!!");
            return false;
        }else{
            if(Number(birth) < 1900){
                alert("1900년도 이하 생일은 말이 안됩니다");
                return false;
            }
        }
    }
    count=0;
    for(var i=0; i<inter.length; i++){
        if(inter[i].checked){
            count++;
        }
    }
    if(count<1){
        alert("관심분야를 하나이상 선택해 주세요!!");
        return false;
    }

    if(intro.length<1){
        alert("자기소개를 적어주세요!!");
        return false;
    }
        
    alert("회원 가입을 축하 합니다!!");

}