아래 단계를 순차적으로 진행
1. 대문자를 소문자로 치환: toLowerCase()
2. 알파벳 소문자, 숫자, 빼기, 밑줄, 마침표가 아닌 문자 제거: match()
3. 마침표가 여러 개면 하나로 치환: replaceAll()
4. 맨앞이나 맨뒤가 마침표면 제거: replace()
5. 빈문자열이면 a
대입
6. 16자 이상이면 처음 15개만 남기기: slice()
이때 끝에 마침표가 있으면 다시 제거
7. 길이가 2자 이하면 마지막 문자를 길이 3이 될 때까지 반복해서 붙이기: repeat()
function solution(new_id) {
let result = new_id
.toLowerCase()
.match(/[a-z0-9-_\.]/g)
.join('')
.replaceAll(/[\.]+/g, '.')
.replace(/^\./, '')
.replace(/\.$/, '')
.replace(/^$/, 'a')
.slice(0, 15)
.replace(/\.$/, '');
if (result.length < 3)
result = result + result.at(-1).repeat(3 - result.length);
return result;
}
드디어 미루던 정규식을 찾아가면서 써봤다.
좋은 글 감사합니다!