프로그래머스 신규아이디 추천
Apr 26, 2021
»
JavaScript
프로그래머스 신규아이디 추천
문제
풀이
- 모든 대문자를 소문자로 치환
- 알파벳 소문자, 숫자, 빼기, 밑줄, 마침표를 제외한 모든 문자를 제거
- 마침표가 2번 이상 연속되면 마침표 하나로 치환
- 마침표가 처음이나 끝에 위치한다면 제거
- 빈 문자열이라면 ‘a’를 대입
- 길이가 16자 이상이면 첫 15개의 문자를 제외한 나머지 문자를 모두 제거
- 길이가 2자 이하라면 마지막 문자를 길이가 3이 될 때까지 반복해서 끝에 붙임
function solution(new_id) {
const answer = new_id
.toLowerCase()
.replace(/[^\w-_.]/g, "")
.replace(/\.{2,}/g, ".")
.replace(/^\.|\.$/g, "")
.replace(/^$/, "a")
.slice(0, 15)
.replace(/\.$/, "");
const len = answer.length;
return len > 2 ? answer : answer + answer.charAt(len - 1).repeat(3 - len);
}
^
: 문장의 시작
$
: 문장의 끝
\w
: word 문자
.{2,}
: .이 최소 2개 이상
|
: 또는
charAt
: 해당하는 문자를 반환