- 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 : 대소문자 구분 없이 검색
'프로그래머스 > JavaScript' 카테고리의 다른 글
[프로그래머스 Javascript] Level1 문자열 내 p와 y의 개수 (0) | 2019.02.02 |
---|---|
[프로그래머스 Javascript] Level1 나누어 떨어지는 숫자 배열 (0) | 2019.01.26 |
[프로그래머스 Javascript] Level1 두 정수 사이의 합 (0) | 2019.01.23 |
[프로그래머스 Javascript] Level1 2016년 (0) | 2019.01.23 |
[프로그래머스 Javascript] Level1 약수의 합 (0) | 2019.01.21 |