[프로그래머스] 신규 아이디 추천 (JS)

hhkim·2023년 7월 20일
0

Algorithm - JavaScript

목록 보기
70/188
post-thumbnail

풀이 과정

아래 단계를 순차적으로 진행
1. 대문자를 소문자로 치환: toLowerCase()
2. 알파벳 소문자, 숫자, 빼기, 밑줄, 마침표가 아닌 문자 제거: match()
3. 마침표가 여러 개면 하나로 치환: replaceAll()
4. 맨앞이나 맨뒤가 마침표면 제거: replace()
5. 빈문자열이면 a 대입
6. 16자 이상이면 처음 15개만 남기기: slice()
이때 끝에 마침표가 있으면 다시 제거
7. 길이가 2자 이하면 마지막 문자를 길이 3이 될 때까지 반복해서 붙이기: repeat()

코드

function solution(new_id) {
  let result = new_id
    .toLowerCase()
    .match(/[a-z0-9-_\.]/g)
    .join('')
    .replaceAll(/[\.]+/g, '.')
    .replace(/^\./, '')
    .replace(/\.$/, '')
    .replace(/^$/, 'a')
    .slice(0, 15)
    .replace(/\.$/, '');
  if (result.length < 3)
    result = result + result.at(-1).repeat(3 - result.length);
  return result;
}

🦾

드디어 미루던 정규식을 찾아가면서 써봤다.

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

좋은 글 감사합니다!

답글 달기