Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b30a65c

Browse files
Update 신규-아이디-추천.js
1 parent c4ffcc5 commit b30a65c

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

‎level-1/신규-아이디-추천.js‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,34 @@ function solution(new_id) {
7676
}
7777
return answer;
7878
}
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

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /