특정문자 마스킹하기(slice와 repeat)




프로그래머스에서 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *로 마스킹하는 문제.

전화번호의 길이는 모른다.

마지막 4자리를 제외한 전화번호를 *로 만들어야 함.

항상 정규표현식을 이용해서 해야한다고 생각했는데,

어떤 일정한 규칙이 있지 않다면 이렇게 하는게 더 간단하다.

function solution(phone_number) {
    var answer = '';
    answer = '*'.repeat(phone_number.length-4) + phone_number.slice(phone_number.length-4);
    return answer;
    
}


이때 알아야할 개념은 slicerepeat

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);	//'*****'

이렇게 출력됨




© 2018. by sora

Powered by sora