풀이
- new_id를 정규식을 이용해 대문자 -> 소문자로 치환한다.
- 정규식이용 (알파벳소문자),(숫자),(-),(_),(.)를 제외한 모든 문자 제거
- new_id를 순회하며 (.)이 나오면 하나의 마침표로 치환
- (.)이 문자열 처음 or 끝에 있으면 제거
- 빈 문자열이 되었으면 a를 대입
- 16자 이상이면, 15자까지 자른다.
- 문자열 마지막이 (.)이면 제거한다.
- 2자 이하라면, 마지막 문자를 3자가 될 때까지 끝에 붙임.
- return answer
코드
function solution(new_id) {
let answer = new_id;
answer = answer.toLowerCase();
answer = answer.replace(/[^a-z\d\-\_\.]/g,"");
answer = answer.replace(/\.+/g,".");
answer = answer.replace(/^\.|\.$/g,"");
if(answer === ""){
answer += "a";
}
if(answer.length >= 16){
answer = answer.substring(0,15);
}
answer = answer.replace(/\.$/g,"");
while(answer.length <= 2){
answer += answer[answer.length -1]
}
return answer
}