📢 문제 설명
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
⛔ 제한 조건
phone_number는 길이 4 이상, 20이하인 문자열입니다.
function solution(str) {
let answer = "";
let strLength = str.length - 4; // 숫자
let strCut = str.slice(0, strLength); //숫자 > 별까지의 str
let star = "*";
answer = str.replace(strCut, star.repeat(strLength));
return answer;
}
str.slice(시작, 끝)
📍 문자열을 시작과 끝까지 추출해 새로운 문자열 반환함
📍 시작하는 index는 0부터 시작하고, 음수부터 시작하는 경우strLength(문자열 길이) + 시작
으로 나옴
📍 시작 index가 전체 문자열의 길이보다 크거나 같은 경우 빈 문자열을 반환하고, 끝 index가 없다면 문자열의 마지막까지 추출
repeat(반복 횟수)
📍 주어진 횟수만큼 반복해서 붙인 새로운 문자열을 반환한다.
function solution(phone_number) {
answer = phone_number.replace(/\d(?=.{4})/g, '*');
return answer;
}
정규식을 사용한 풀이 방법
📍 /\d(?=.{4})/g
: 숫자 뒷자리 4개 제외하고 / 모두 찾은 후 replace *
정규식 만드는 사이트