๋ฌธ์ ๋งํฌ
์ ๊ทผ ๋ฐฉ๋ฒ
์ด ๋ฌธ์ ๋ ์ ๊ท์์ ๋ฐํ์ผ๋ก ์ฃผ์ด์ง ๋ฌธ์์ด์ ์ฒ๋ฆฌํ๋ ๋ฌธ์ ์ด๋ค.
์ ๊ท์ ํจํด์ด ์ต์์น ์์์ ๋จ๊ณ๋ณ๋ก ๊ตฌ๋ถํ์ง๋ง ํ์ค๋ก ์ด์ด ์ฌ์ฉํ ์ ์๋ค.
์ฝ๋์์ ์ฌ์ฉํ ์ ๊ท์์ ์
- /[^\w-_.]/g; => [^](๊ดํธ ๋ด์ ๋ฌธ์๋ฅผ ์ ์ธํ ๊ฒ) ์ฆ, \w(์์ด, ์ซ์), '-', '_', '.' ์ ์ ์ธํ ๊ฒ์ ์๋ฏธ
- ๋ฌธ์{2, }๋ ๋ฌธ์๊ฐ 2๋ฒ ์ด์ ๋ฐ๋ณต๋จ์ ์๋ฏธ
- /^\.|$\./g => '^๋ฌธ์'๋ ๋ฌธ์์ด์ ์์์์ ๋ฌธ์๋ฅผ ์ฐพ๊ณ , '$๋ฌธ์'๋ ๋ฌธ์์ด์ ๋์์ ๋ฌธ์๋ฅผ ์ฐพ์
- /^$/g => ์์๊ณผ ๋์ด ๋น์์ผ๋ฏ๋ก ๋น ๋ฌธ์์ด์ ์๋ฏธ
์ ๊ทํํ์ ์ฐ์ต ์ฌ์ดํธ
function solution(new_id) {
var answer = '';
//1๋จ๊ณ (๋๋ฌธ์ -> ์๋ฌธ์)
new_id = new_id.toLowerCase();
//2๋จ๊ณ (์ํ๋ฒณ ์๋ฌธ์, ์ซ์, -, _, . ์ ์ธ ๋ชจ๋ ๋ฌธ์ ์ญ์ )
let regExp = /[^\w-_.]/g;
new_id = new_id.replace(regExp, "");
//3๋จ๊ณ (์ค๋ณต๋ . ์ญ์ )
regExp = /\.{2,}/g;
new_id = new_id.replace(regExp, ".");
//4๋จ๊ณ (.๊ฐ ๋ฌธ์ฅ ์ฒ์์ด๋ ๋์ ์์นํ๋ค๋ฉด ์ ๊ฑฐ)
regExp = /^\.|\.$/g;
new_id = new_id.replace(regExp, "");
//5๋จ๊ณ (๋ฌธ์์ด์ด ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด, ๋ฌธ์์ด ์ a๋ฅผ ๋์
)
regExp = /^$/g;
new_id = new_id.replace(regExp, "a");
//6๋จ๊ณ (๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 16์ ์ด์์ด๋ผ๋ฉด, ์ฒซ 15๊ฐ ๋ฌธ์๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฌธ์ ์ญ์ , ์ด๋ ๋ง์ง๋ง๋ฌธ์๊ฐ .์ด๋ฉด ์๋จ)
regExp = /\.$/g;
new_id = new_id.slice(0,15).replace(regExp, "")
;
//7๋จ๊ณ (๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 2์ ์ดํ๋ผ๋ฉด ๋ง์ง๋ง ๋ฌธ์๋ฅผ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 3์ผ๋๊น์ง ๋ฐ๋ณต)
let length = new_id.length;
length > 2 ? new_id : new_id = (new_id + new_id[length-1].repeat(3-length));
answer = new_id;
return answer;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ (64061) (0) | 2022.04.22 |
---|---|
[Javascript] ํคํจ๋ ๋๋ฅด๊ธฐ(67265) (0) | 2022.04.21 |
[Javascript] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (77484) (0) | 2022.04.20 |
[Javascript] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (92334) (0) | 2022.04.19 |
[Javascript] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (81301) (0) | 2022.04.18 |