프로젝트/고농축 백엔드 코스

[고농축 백엔드 코스Quiz1]주민번호 마스킹

개발자국S2 2023. 7. 26. 14:55

1. 주민번호 뒷자리를 가리는 함수(customRegistrationNumber)를 하나 만들고, 해당 함수에 “210510-1010101” 와 같이 주민번호를 넣어서 실행하면 “210510-1******” 와 같은 형태로 콘솔에 출력되도록 만들어 주세요.
    1. 주민번호 가운데가 ”-”로 구성되어야 합니다. 
        - 그렇지 않을 경우 에러 메시지를 콘솔에 출력해 주세요.
            
            ex) ”에러 발생!!! 형식이 올바르지 않습니다!!!”
            
    2. 주민번호는 앞 6자리, 뒤 7자리로 구성되어야 합니다.
        - 그렇지 않을 경우 에러 메시지를 콘솔에 출력해 주세요.
            
            ex) ”에러 발생!!! 개수를 제대로 입력해 주세요!!!”
            
    3. 뒤 7자리 중, 끝 6자리는 *로 변경해서 콘솔에 출력해 주세요.
    4. 함수는 퍼사드 패턴이 적용되어야 합니다. 
        - 필요시 새로운 파일도 생성 가능합니다. - 파일명 자유
    5. 함수에 “210510-1010101”, “210510-1010101010101”, “2105101010101”를 각각 넣어 실행했을 때 아래의 출력 결과 예시와 동일하게 나타나면 됩니다.

const noOfMasks = 6;
function maskNo(reg) {
  regArr = reg.split("-");
  //1. 주민번호 가운데가 "-"로 구성되어야 합니다.
  if (reg.indexOf("-") !== 6) {
    console.log("에러발생!!! 형식이 올바르지 않습니다!!!");
    //2.  -를 기준으로 앞이 6개 뒤가 7개
  } else if (regArr[0].length !== 6 || regArr[1].length !== 7) {
    console.log("에러 발생!!! 개수를 제대로 입력해 주세요!!!");
  } else {
    // 3. 마지막 n자리를 *로 마스킹(n자리는 변수noOfMasks로 받음)
    const maskedNo = reg.slice(0, -6) + "*".repeat(noOfMasks);
    console.log(maskedNo);
  }
}

maskNo("210510-1010101");
maskNo("210510-1010101010101");
maskNo("2105101010101");
반응형