728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/72410
코드
function solution(new_id) {
var answer = '';
answer = new_id
.toLowerCase() //1단계
.replace(/[^\w-_.]/g, '') //2단계
.replace(/\.+/g, '.') //3단계
.replace(/^\.|\.$/g, ''); //4단계
if(answer === '') { //5단계
answer += 'a';
}
answer = answer
.slice(0, 15) //6단계
.replace(/\.$/g, '')
.padEnd(3, answer[answer.length-1]); //7단계
return answer;
}
후기
- 정규식을 연습하기에도, 제대로 찾아보기에도 좋은 문제였다
- 정규식을 잘 몰라서 처음엔 for문으로 해결해야지 했다가 조건의 2단계부터 막혀버려서 바로 정규식을 공부하고 왔다
- https://curryyou.tistory.com/234?category=898979 정규식에 대해서 너무 정리가 잘 돼있는 것 같다 큰 도움을 받았다
- 조건의 7단계에서 사용된 padEnd() 함수는 문자열 길이를 채우는 함수로서 padStart() 라는 짝꿍 함수가 있다
- padEnd() 사용법 : "string.padEnd(목표길이, 채울 값)" 의 구조를 가지고 있으며, 문자열 string의 길이가 목표길이가 될 때까지 string뒤에 채울 값으로 채워주는 의미이다 (반대로 padStart()는 목표길이가 될 때까지 string 앞에 채워준다)
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] 2016년 / JavaScript (0) | 2022.01.07 |
---|---|
[Programmers] 모의고사 / JavaScript (0) | 2022.01.06 |
[Programmers] 숫자 문자열과 영단어 / JavaScript (0) | 2022.01.05 |
[Programmers] 크레인 인형뽑기 게임 / JavaScript (0) | 2022.01.05 |
[Programmers] 내적 / JavaScript (0) | 2022.01.05 |