프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
function solution(phone_number) {
var answer = '';
return answer;
}
function solution(phone_number) {
let len = phone_number.length - 4;
//len 에 phone_number의 길이에서 4를 뺀 길이를 저장해 준다. let 대신 const로 선언해도 괜찮다.
return '*'.repeat(len) + phone_number.substring(len);
// phone_number의 길이에서 4를 뺀 길이만큼 *를 반복해주고 substring을 이용해서 나머지 4만큼의 숫자를 반환해준다.
}
function hide_numbers(s) {
return s.replace(/\d(?=\d{4})/g, "*");
}
위는 정규표현식을 사용한 코드
\d(4)는 숫자가 4번 반복되는 문자열을 의미한다.
\d(?=\d{4})로 숫자 4개가 뒤따라오는 숫자 문자를 구한다.
그것을 "*"로 replace 해준다.
function hide_numbers(s){
var result = "*".repeat(s.length - 4) + s.slice(-4);
return result;
//slice 가 '음수' 지원이 되므로 slice를 쓰는 것을 추천
str.substring(count)
: 첫 번째 인수로 전달받은 인덱스에 위치하는 문자부터 두 번째 인수로 전달받은 인덱스에 위치하는 문자의 바로 이전까지의 부분 문자열을 반환한다. 두 번째 인수는 생략할 수 있으며 이 때는 첫 번째 인수로 전달한 인덱스에 위치하는 문자부터 마지막 문자까지 부분 문자열을 반환한다. 인수가 0보다 작은 값이거나 NaN인 경우 0으로 취급된다. 만약 첫 번째 인수가 두 번째 인수보다 큰 경우, 두 인수는 교환된다.str.repeat(count)
정규표현식
: 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 format language (형식 언어)이다. \d는 숫자 문자에 대응된다.[0 - 9] 와 동일하다.문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12948
참고 페이지 : https://jaypedia.tistory.com/61
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions