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 |