FrontEnd/프로그래머스

[JS] 신규 아이디 추천

728x90

문제를 딱 읽자마자 정규표현식을 활용하면 좋을 것 같다는 생각을 했다.

 

 

우선 . 을 문자로 사용하기 위해서 정규표현식 앞에 \ 를 붙여줘야 한다.

 

1단계 : toLowerCase를 통해서 대문자들을 모두 소문자로 바꿔준다.

2단계 : \w를 쓰면 알파벳과 숫자 _ 를 한번에 표현할 수 있다. 이어서 - 와 . 외의 모든 글자를 "" 으로 바꿔줌으로써 값을 제거해주었다.

3단계 : .가 반복적으로 나오는 경우 .가 한개만 나오도록 바꿔주었다.

4단계 : 정규표현식에서 ^는 처음을 $은 마지막을 나타낸다. 이를 활용해서 처음과 끝의 .을 없애주었다.

5단계 : 공백만 존재하는 경우 a로 바꿔주었다.

6단계 : 문자열의 길이를 자른 후, .로 끝나는 경우 이를 없애주었다.

7단계 : 글자수가 3개가 안되는 경우 3개까지 마지막 문제를 붙여서 만들어주었다.

 

function solution(new_id) {
    var ret = new_id
        .toLowerCase()
        .replace(/[^\w-\.]/g,'')
        .replace(/[\.]+/g,'.')
        .replace(/^\.|\.$/,'')
        .replace(/^$/,'a')
        .substring(0,15)
        .replace(/\.$/,'')
        
    while (ret.length <=2 ) ret = ret + ret[ret.length-1]
    return ret;
}
728x90

'FrontEnd > 프로그래머스' 카테고리의 다른 글

[JS] 키패드누르기  (0) 2023.04.21
[JS] 두개 뽑아서 더하기  (0) 2023.04.20
[JS] 내적  (0) 2023.04.20
[JS] 로또의 최고순위와 최저순위  (0) 2023.04.18
[JS] 숫자 문자열과 영단어  (0) 2023.04.17