문제

 

풀이 코드

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

 

풀이 과정

처음에 replace 를 생각했다 이걸 적용하려면 정규식을 잘 써야 하는데 

정규식에 대한 지식이 부족했다..

정규식으로 풀면 한줄이면 끝날거같았는데.. 도저히 생각이 나지 않아 다른 방법으로 구현 하였다.

 

repeat(숫자) : 숫자만큼 반복함

slice(인덱스) : 해당 인덱스 부터 끝까지의 문자열만 반환함

 

다른사람의 풀이

function hide_numbers(s) {
  return s.replace(/\d(?=\d{4})/g, "*");
}

정규식으로 풀어내셨다

정규식을 풀어 해석하면 다음과 같이 된다.

/g : 모든 문자열에 대해서 적용
\d : 모든 숫자
x(?=y) : y에 대한 조건을 허용하는 것을 뒤따라오는 x에만 대응된다. 대응 되면 x의 값을 바꾼다.
x(?!y) : x에 대한 조건을 허용하는 것을 뒤따라오는 y에만 대응된다. 대응 되면 x의 값을 바꾼다.
{n} :  앞 표현식이 n번 나타나는 부분에 대응

+ Recent posts