@@ -76,3 +76,34 @@ function solution(new_id) {
76
76
}
77
77
return answer ;
78
78
}
79
+
80
+ //정답 4 - chaerin-dev
81
+ function solution ( new_id ) {
82
+ // 1단계: 모든 대문자를 소문자로
83
+ new_id = new_id . toLowerCase ( ) ;
84
+
85
+ // 2단계: 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자 제거
86
+ new_id = new_id . replace ( / [ ^ \w \- \. ] / g, "" ) ;
87
+
88
+ // 3단계: 연속되는 마침표는 마침표 하나로
89
+ new_id = new_id . replace ( / \. { 2 , } / g, "." ) ;
90
+
91
+ // 4단계: 처음이나 끝에 마침표가 있으면 제거
92
+ new_id = new_id . replace ( / ^ \. | \. $ / , "" ) ;
93
+
94
+ // 5단계: new_id가 빈 문자열이면 "a" 대입
95
+ if ( new_id . length === 0 ) new_id = "a" ;
96
+
97
+ // 6단계: new_id의 길이가 16자 이상이면,
98
+ // new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거
99
+ // 제거 후 끝에 마침표가 있으면 제거
100
+ if ( new_id . length >= 16 ) new_id = new_id . slice ( 0 , 15 ) ;
101
+ new_id = new_id . replace ( / \. $ / , "" ) ;
102
+
103
+ // 7단계: new_id의 길이가 2자 이하이면,
104
+ // new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 이어붙임
105
+ let len = new_id . length ;
106
+ if ( len <= 2 ) new_id = new_id + new_id [ len - 1 ] . repeat ( 3 - len ) ;
107
+
108
+ return new_id ;
109
+ }
0 commit comments