본문 바로가기

프로그래머스/JavaScript

[프로그래머스 Javascript] Level1 핸드폰 번호 가리기

- phone_number가 문자열로 주어집니다.

- 문자열을 길이는 4 ~ 20글자입니다.

- 뒷자리 4개를 제외한 나머지 번호를 *로 표시합니다.

 

 

[방법 1] replace 사용

뒤에 4개를 글자를 가진 글자들을 *로 변경한 문자열을 반환해줍니다.

function solution(phone_number) {
    let answer = '';
    const length = phone_number.length;
    
    answer = phone_number.replace(/\w(?=\w{4})/g, '*');    
    // /\w(?=\w{4})/g : text 4개가 뒤에 존재하는 text 모두
    
    return answer;
}
 

[방법 2] repeat 사용

*를 phone_number의 길이에서 4를 뺀 만큼 반복하고, 뒤에 4자리를 잘라 붙여 만든 문자열을 반환합니다.

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

 

 

 

 


String.replace() : 지정된 부분이 교체된 새로운 문자열을 반환하는 메서드

String.repeat() : 문자열을 주어진 횟수만큼 반복한 새로운 문자열을 반환하는 메서드

 

정규식

\w : 밑줄 문자를 포함한 영숫자 문자

{n} : 앞 표현식이 n번 반복 (n은 항상 양의 정수)

x(?=y) : y가 뒤따라오는 x (lookahead라고 부름)

x(?!y) : y가 뒤따르지 않는 x (negated lookahead라고 부름)

g : 전역 검색

i : 대소문자 구분 없이 검색