function solution(new_id) {
let answer = new_id.toLowerCase()
.replace(/[^\w\.\-]/g,'')
.replace(/[.]{2,}/g,'.')
.replace(/^\./g,'')
.padEnd(1,'a')
.slice(0,15).replace(/\.$/g,'')
return answer.padEnd(3,answer[answer.length-1]);
}
정규식을 사용하면 편하게 풀 수 있을거라고 생각했다. 처음엔 한 단계씩 level1, level2 이런식으로 한 단계씩 풀어나가려 했다. map과 for문을 사용해서 split한 id를 만지려니 너무 복잡해졌다. 다른사람들을 보니 정규식과 체인으로 간단하게 해결했더라,,
보면서 padEnd라는 건 처음봤다 js Docs를 많이 봐둬야겠다. 처음보는 함수가 아직도 많다.
padEnd() 메서드는 현재 문자열에 다른 문자열을 채워, 주어진 길이를 만족하는 새로운 문자열을 반환합니다. 채워넣기는 대상 문자열의 끝(우측)부터 적용됩니다.
출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd