level 1. 핸드폰번호 가리기 (Javascript)

핸드폰 번호 가리기

문제

개인정보 보호를 위해 고객들의 전화번호는 맨 뒷자리 4자리를 제외한 나머지를 ““으로 바꿔야 합니다.
전화번호를 문자열 s로 입력받는 hide_numbers함수를 완성하세요.
예를들어 s가 “01033334444”면 “*4444”를 리턴하고, “027778888”인 경우는 “8888”을 리턴하면 됩니다.

풀이 (본인)

1
2
3
4
5
6
7
8
9
10
11
12
function hideNumbers(str){
var lastFour = str.split('').slice(-4).join('');
var star = [];
for(var num = 0; num<str.split('').length-4; num++){
star.push('*');
}
var starStr = star.join('');
return starStr+lastFour;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log(hideNumbers('01033334444')); // *******4444
console.log(hideNumbers('027778888')); // *****8888

풀이 (다른 사람)

1
2
3
4
5
6
function hide_numbers(s) {
return s.replace(/\d(?=\d{4})/g, "*");
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log(hideNumbers('01033334444')); // *******4444
console.log(hideNumbers('027778888')); // *****8888

풀이 (다른 사람)

1
2
3
4
5
6
7
8
function hide_numbers(s){
var result = "*".repeat(s.length - 4) + s.slice(-4);
//함수를 완성해주세요
return result;
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log(hideNumbers('01033334444')); // *******4444
console.log(hideNumbers('027778888')); // *****8888

배운점

  • 정규표현식을 사용하면 짧은 코드로 끝낼 수 있다.
  • string type 프로퍼티를 이용해도 간결하게 끝낼 수 있다.

느낀점

  • Javascript를 배우면서 강사님이 말씀하시기를 내가 불편해하고 쉽게 할 수 있는 방법들은 이미 만들어져 있다고 했다.
  • 정규표현식을 사용하면 코드 속도도 빨라지므로 내가 원하는 기능이 정규표현식에 있는지 찾아보는 습관을 갖아야겠다.
  • 다른사람의 코드를 보고 배우는것도 큰 도움이 되는 것 같다.
공유하기