Javascript

로그인 폼 전송시 아이디, 비밀번호 형식 확인(정규표현식 활용)

breeghty 2023. 2. 20. 21:04

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="modal.css">
</head>
<body>
    <button id="openBtn">버튼</button>
<!-- modal -->
    <div class="black-bg">
        <div class="white-bg">
            <form action="success.html">
                <h4>로그인하세요</h4>
                <div class="inputStyle">
                    <input type="text" id="id">
                </div>
                <div class="inputStyle">
                    <input type="password" id="pw">
                </div>
                <button id='submitBtn' type="submit" class='btn btn-primary'>전송</button>
                <button type='button'class="btn btn-danger" id="close">닫기</button>
            </form>
            
        </div>
    </div>

    <script>
        document.getElementById('openBtn').addEventListener('click',function(){
            document.querySelector('.black-bg').classList.add('show');
            this.style.display='none';
        });
        // 닫기버튼
        document.getElementById('close').addEventListener('click',function(){
            document.querySelector('.black-bg').classList.remove('show');             
            document.getElementById('openBtn').style.display = 'block';
        });

        // 전송버튼 누르면 input 입력한 값 ==공백, 알림창 띄우기.

        document.querySelector('form').addEventListener('submit',function(e){
            if(document.getElementById('id').value==''){
                e.preventDefault();//완료 페이지 x
                alert("아이디를 입력하세요");
            }
            if(!(/\S+@\S+\.\S+/.test(document.getElementById('id').value))){
                e.preventDefault();//완료 페이지 x
                alert("아이디 형식이 아닙니다.");
            }
            if(document.getElementById('pw').value==''){
                e.preventDefault();//완료 페이지 x
                alert("비밀번호를 입력하세요");
            }else if(document.getElementById('pw').value.length <6){
                e.preventDefault();
                alert("비밀번호를 6자 이상 입력하세요.");
            }else if(!(/[A-Z]/.test(document.getElementById('pw').value))){
                e.preventDefault();
                alert("비밀번호는 최소 영어 대문자 한 자를 포함하여야 합니다.");
            }
            
        });

        
    </script>
</body>
</html>