가수면

[Javascript] 핸드폰 번호 가리기 본문

CS/코딩 테스트

[Javascript] 핸드폰 번호 가리기

니비앙 2022. 11. 19. 17:27

문제 설명

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건
  • phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
"01033334444" "*******4444"
"027778888" "*****8888"

 

 


 

연습할 겸 삼항 연산자로 접근을 해보려고 했었는데 결국 시간을 너무 잡아먹게 되어 답을 찾아보게 되었다.

function solution(phone_number) {
    var answer = '';
    if (phone_number.length === 11) {
        answer = "*******" + phone_number.substring(7, 11)
    } else if (phone_number.length === 9) {
        answer = "*****" + phone_number.substring(5, 9)
    } else {
        answer = "******" + phone_number.substring(6, 10)
    }
    return answer;
}

 

정답 코드

function solution(phone_number) {
  return "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
}

 

 

.substring()

지정한 범위의 문자열을 잘라서 리턴

기본 형태 => .substring(시작 위치, 끝 위치)

const str = 'Mozilla';

console.log(str.substring(1, 3));
// expected output: "oz"

console.log(str.substring(2));
// expected output: "zilla"

 

.slice

지정한 범위의 문자열을 복사해 리턴 (substring과 사용법 동일)

 

차이점 => 음수 인덱스를 인식함. (음수 입력하면 뒤에서부터 찾음)

let str = 'Hello World Javascript';

let a = str.substring(0, -6);
let b = str.slice(0, -6);

console.log(a);
undefined

console.log(b);
Hello World Java

 

 

padStart()

 

Comments