프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
phone_number는 길이 4 이상, 20이하인 문자열입니다.
function solution(phone_number) {
let arr = phone_number.split("");
let n = arr.length;
for(let i=0; i<n-4;i++){
arr[i] = "*";
}
return arr.join("");
}
function hide_numbers(s) {
return s.replace(/\d(?=\d{4})/g, "*");
}
정규 표현식과 replace 메서드를 이용한 풀이
특정 패턴의 문자열을 찾기 위한 식. /이안에 사용한다./
/대/ : 대를 하나만 찾는다.
/한/g : 한을 모두 찾는다. g(global)을 의미한다.
/[0-9]/g : 숫자 0~9를 모두 찾는다.
/[a-zA-Z]/g : 영어알파벳 대문자/소문자를 모두 찾는다.
/[^0-9]/g : 숫자0~9가 아닌 것을 모두 찾는다. ^(NOT)을 의미한다.
\d : 숫자.
\D : 숫자가 아닌 것.
\d(?=\d{4})g 뒤에 4자리의 숫자를 제외한 모든 숫자를 의미한다.
("문자열").replace(/정규표현식/, "대체문자열")
이번 문제에서 사용한 패턴이다.
정규표현식 정보 출처
https://curryyou.tistory.com/234 [카레유]