말랑한 하루
[Programmers] 신규 아이디 추천 (Lv 1, JavaScript) 본문
반응형
[ 학습 내용 ]
정규표현식
1) replace를 활용한다.
2) 메타문자에 포함되는 문자를 기본 문자열로 사용하고 싶다면 대괄호[] 안에 넣어주고 대괄호를 쓰지 않는 경우 백슬래시\ 를 활용해서 문자임을 표현한다.
3) 다음은 이번 문제에 사용된 정규식이다.
- \w : 영소문자+ "_"를 의미함. ASCII로는 [A-Za-z0-9_]
- [^] : 부정을 의미한다
- + : 1번 이상 발생하는 패턴과 일치시킴
- \. : .이 메타문자에 포함되므로 \사용
- ^ : 시작점과 일치하는지 판별
- $ : 끝점과 일치하는지 판별
- | : 모든 판별조건 부합하기
- ^$ : 두개다 요소를 안넣어줌으로써 빈 문자열임을 의미
[ 소스 코드 ]
function solution(new_id) {
var answer = new_id
.toLowerCase()
.replace(/[^\w-.]/g,"")
.replace(/\.+/g,".")
.replace(/^\.|\.$/,"")
.replace(/^$/,"a")
.slice(0, 15)
.replace(/\.$/,"")
let length = answer.length;
return answer = length > 2 ? answer : answer + answer.charAt(length - 1).repeat(3 - length);
}
[ 심화 코드 ]
function solution(new_id) {
const id = new_id
.toLowerCase()
.replace(/[^\w\d-_.]/g, '')
.replace(/\.{2,}/g, '.')
.replace(/^\.|\.$/g, '')
.padEnd(1, 'a')
.slice(0, 15)
.replace(/^\.|\.$/g, '')
return id.padEnd(3, id[id.length-1])
}
[ 코드 분석 ]
- padEnd() : 현재 문자열 끝(우측)부터 다른 문자열을 채워 주어진 길이를 만족하는 새로운 문자열을 반환한다.
- StartEnd() : 현재 문자열 시작(좌측)부터 다른 문자열을 채워 주어진 길이를 만족하는 새로운 문자열을 반환한다.
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Programmers] 실패율 (Lv 1, JavaScript) (0) | 2022.07.06 |
---|---|
[Programmers] 크레인 인형뽑기 게임 (Lv 1, JavaScript) (0) | 2022.07.06 |
[Programmers] 키패드 누르기 (Lv 1, JavaScript) (0) | 2022.06.30 |
[Programmers] 숫자 문자열과 영단어 (Lv 1, JavaScript) (0) | 2022.06.29 |
[Programmers] 신고 결과 받기 (Lv 1, JavaScript) (0) | 2022.06.27 |
Comments