๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/PROGRAMMERS

[JavaScript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์‹ ๊ทœ์•„์ด๋””

by DevIseo 2022. 10. 26.

[JavaScript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์‹ ๊ทœ์•„์ด๋””

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

function solution(new_id) {
    var answer='';
    //("๋ฌธ์ž์—ด").replace(/์ •๊ทœํ‘œํ˜„์‹/, "๋Œ€์ฒด๋ฌธ์ž์—ด")
                    //์†Œ๋ฌธ์ž๋กœ ์น˜ํ™˜ (1๋‹จ๊ณ„)
    new_id = new_id.toLowerCase() 
                    // ์˜์–ด ์†Œ๋ฌธ์ž - _ . ๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์ž ์ œ๊ฑฐ (2๋‹จ๊ณ„)
                   .replace(/[^\w-_.]/g, '')
                    // .์ด 2๊ฐœ ์ด์ƒ์ด๋ฉด ํ•œ๊ฐœ๋กœ ์น˜ํ™˜ (3๋‹จ๊ณ„)
                   .replace(/\.+/g, '.')
                     // ์ฒ˜์Œ์ด๋‚˜ ๋์— .์ด ์žˆ์œผ๋ฉด ์ œ๊ฑฐ (4๋‹จ๊ณ„)
                   .replace(/^\.|.\$/g,'')
                    // ๋นˆ ๋ฌธ์ž์—ด์ด๋ฉด a ๋Œ€์ž… (5๋‹จ๊ณ„)
                   .replace(/^$/g, 'a') 
                     // 16๋ฒˆ์งธ ๊ธ€์ž๋ถ€ํ„ฐ ์‚ญ์ œ, ๋งŒ์•ฝ ์ž๋ฅธ ๋ฌธ์ž์˜ ๋งˆ์ง€๋ง‰์ด .์ด๋ฉด ์ œ๊ฑฐ (6๋‹จ๊ณ„)
                   .slice(0,15).replace(/\.$/g, '')
    
    let id_len = new_id.length;
	// ๊ธธ์ด๊ฐ€ 3๋ณด๋‹ค ์ ์œผ๋ฉด ๋งˆ์ง€๋ง‰ ๊ธ€์ž๋ฅผ ๋งˆ์ง€๋ง‰์— ๋ถ™์ธ๋‹ค. 7๋‹จ๊ณ„
    while (id_len < 3){
        new_id = new_id + new_id.charAt(id_len-1);
        ++id_len;
    }
    answer = new_id;
    return answer;
}

 

์ •๊ทœํ‘œํ˜„์‹ Reference

 

[JS] ๐Ÿ“š ์ •๊ทœํ‘œํ˜„์‹(RegExp) - ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ •๋ฆฌ + ์‘์šฉ ์˜ˆ์ œ

์ •๊ทœํ‘œํ˜„์‹(Regular Expression) ์ •๊ทœ์‹(Regular Expression)์€ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋‚ด์šฉ์„ ์ฐพ๊ฑฐ๋‚˜ ๋Œ€์ฒด ๋˜๋Š” ๋ฐœ์ทŒํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์ž…๋ ฅ์นธ์— ์ „ํ™”๋ฒˆํ˜ธ๋‚˜ ์ด๋ฉ”์ผ์„ ์ž…๋ ฅํ•˜๋ผ๊ณ  ํ–ˆ์„๋•Œ ์˜ณ์ง€ ์•Š์€

inpa.tistory.com

 

๋Œ“๊ธ€