티스토리 뷰

728x90

이전 글에서 조금 변형된 문제 이다.

이전 글 참조

2020/04/26 - [SW] - [javascript] 자바스크립트 prompt 로 email 입력 받아 검증 해서 출력 하기(email 에 Id 분리 Object에 넣기)

 

[javascript] 자바스크립트 prompt 로 email 입력 받아 검증 해서 출력 하기(email 에 Id 분리 Object에 넣기)

자바스크립트 prompt 로 email 입력 받아 검증 해서 통과 하면 @를 앞부분을 Object에 id 키 값으로 넣고 패스워드를 입력을 받아 패스워드 조건을 만족 했을시 Object 에 pw 키값으로 넣고 입력 종료시에 아이디..

wings2pc.tistory.com

prompt 로  취소를 누를 때까지 email 입력 받아 정규화해서 @ 앞문자들을 ID 로 하고 PW를 입력 받아 출력 까지는 똑같은데 email 조건이 영문자 숫자 4자리 이상으로 변경 되었고 패스워드를 입력 받아 배열에 취소 버튼 누를 때까지 배열에 ID와 PW를 저장 해서 취소 버튼을 누르면 출력 하기. 이때 id 순서대로 오름차순(a~z 순)으로 정렬해야 한다.

 

이전 글에서 조금 변경된 소스는 다음과 같다.

  <script>
    const email_re = /^[A-Za-z0-9]{4,}@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
    const pw_re = /^[A-Za-z0-9]{6,12}$/;

    let user_list = [];
    // 이메일 입력 받기
    while (true) {
      let input = prompt("Enter Email");
      if (input == null) break;  // 취소 버튼 종료

      let user_info = {};
      if (email_re.test(input)) {
        user_info.email = input;
        user_info.id = input.split("@")[0];
        // 패스워드 입력 받기
        while (true) {
          input = prompt("Enter Password");
          if (pw_re.test(input)) {
            user_info.pw = input;
            user_list.push(user_info);
            break;
          } else {
            alert("패스워드 다시입력(6~12자리 숫자와 영문자만 사용가능)");
          }  // if
        }   // while
      } else {
        alert("잘못된 이메일 다시입력(이메일 아이디 4자리 이상 숫자와 영문자 사용가능)");
      }
    }

    // 오브젝트에 값이 들어 갔을 때만 출력
    if (user_list.length) {
      // id 값으로 정렬
      user_list.sort(function (a, b) {
        if (a.id < b.id) return -1;
        if (a.id > b.id) return 1;
        return 0;
      })

      for (let i in user_list) {
        console.log("email:" + user_list[i].email);
        console.log("id:" + user_list[i].id);
        console.log("pw:" + user_list[i].pw);
      }
    }
  </script>

* 참고로 위 소스를 복사해서 붙여 넣기 하면 줄 맞춤이 안되는데 해결 방법은 크롬에서 개발자 도구(윈도우에서 F12번키)를 열어서 F1번 키를 누르면 브라우저 설정창이 나오는데 Disable JavaScript를 체크 하고(설정창 열려있는 상태) 다시 복사를 해서 붙여 넣으면 해결할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함