특정문자 마스킹하기(slice와 repeat)
in Algorithm
프로그래머스에서 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *로 마스킹하는 문제.
전화번호의 길이는 모른다.
마지막 4자리를 제외한 전화번호를 *로 만들어야 함.
항상 정규표현식을 이용해서 해야한다고 생각했는데,
어떤 일정한 규칙이 있지 않다면 이렇게 하는게 더 간단하다.
function solution(phone_number) {
var answer = '';
answer = '*'.repeat(phone_number.length-4) + phone_number.slice(phone_number.length-4);
return answer;
}
이때 알아야할 개념은 slice
와 repeat
slice는 https://soraji.github.io/js/2022/10/19/jsDay1/ 여기에 적어두었다
slice(시작인덱스, 생략가능한마지막인덱스)
: 특정 범위를 복사한 값을 담고 있는 새로운 배열 생성. 원본배열 훼손하지 않음
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.slice(2,5); //[3, 4, 5] 마지막인덱스의 값은 포함하지 않음. arr[5]는 6인데 6은 포함하지 않으므로 [3,4,5]만
arr.slice(8); //[9, 10] 마지막인덱스 생략시 끝 값까지 포함
repeat은 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/repeat
str.repeat(count);
이렇게 사용할 수 있다
반복하고 싶은 문자열 str에 몇번을 반복하고 싶은지 작성하면 됨.
예를들어
'*'.repeat(5); //'*****'
이렇게 출력됨