프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
remainder
를 가져오기 위해서는 문자열에서 특정 인덱스부터 "종료인덱스를 포함하지 않는 문자열을 반환하는 substring() 메서드를 사용하면 된다. 그럼 뒷 4자리 이전까지의 값들만 추출할 수가 있다.remainder
를 *로 replace 해주자.hidden
과 lastFourDigits
를 더한값을 return function solution(phone_number) {
let lastFourDigits = phone_number.substr(-4, 4);
let remainder = phone_number.substring(0, phone_number.length -4);
let hidden = remainder.replace(/[0-9]/g, '*');
return hidden + lastFourDigits;
}
function solution(phone_number) {
return phone_number.replace(/\d(?=\d{4})/g, '*');
}
('문자열').replace(/정규표현식/, '대체문자열')
'정규표현식'에 매칭되는 항목을 '대체문자열'로 변환
\d
: 숫자
(?=)
: 앞쪽 일치(Lookahead)
{n}
: n개
g
: global (문자열 내의 모든 패턴을 검색한다)
substr() 메서드는 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환합니다.
str.substr(start[, length])
const str = 'Programmers';
console.log(str.substr(1, 2)); // "ro"
console.log(str.substr(2)); // "ogrammers"
substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
str.substring(indexStart[, indexEnd])
const str = 'Programmers';
console.log(str.substring(1, 3)); // "ro"
console.log(str.substring(2)); // "ogrammers"