개인정보 보호를 위해 고객들의 전화번호는 맨 뒷자리 4자리를 제외한 나머지를 ““으로 바꿔야 합니다. 전화번호를 문자열 s로 입력받는 hide_numbers함수를 완성하세요. 예를들어 s가 “01033334444”면 “*4444”를 리턴하고, “027778888”인 경우는 “8888”을 리턴하면 됩니다.
풀이 (본인)
1 2 3 4 5 6 7 8 9 10 11 12
functionhideNumbers(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
functionhide_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
functionhide_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를 배우면서 강사님이 말씀하시기를 내가 불편해하고 쉽게 할 수 있는 방법들은 이미 만들어져 있다고 했다.
정규표현식을 사용하면 코드 속도도 빨라지므로 내가 원하는 기능이 정규표현식에 있는지 찾아보는 습관을 갖아야겠다.