👉https://programmers.co.kr/learn/courses/30/lessons/72410
우선 문제를 딱 보자마자 정규표현식을 써야겠군 이라는 생각이 들었다.
정규표현식과 string 메소드도 많이 사용해야 했다.
(toLowerCase, replace, slice, charAt, repeat)
function solution(new_id){
const answer = new_id
.toLowerCase()
.replace(/[^\w-_.]/g, '')
.replace(/\.{2,}/g, '.')
.replace(/^\.|\.$/g, '')
.replace(/^$/, 'a')
.slice(0, 15).replace(/\.$/, '');
const len = answer.length;
return len > 2 ? answer : answer + answer.charAt(len - 1).repeat(3 - len);
}
사실 이번 문제는 어떻게 풀지는 대충 알겠다 하였지만 막상 코드를 치려고 하니 너무나 찾아봐야 할게 많고, 엄두가 나지 않았다.
매번 복붙만 했는데 직접 코드를 쳐봐야하고 그리고 한번 봐서 안되니 자주 여러번 봐서 꼭 내것으로 만들어야 할꺼 같다.
[ 정규표현식 정리하기 ]
g : 모든 문자와 여러 줄 일치 (global)
^ : 문장의 시작
$ : 문장의 끝
\w : word 문자
.{2,} : .이 최소 2개 이상
| : 또는