프로그래머스 LEVEL 1(신규 아이디 추천))

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-08-02

  • 해결 방법 :

    • 정규 표현식 및 replace 사용하여 단계 별 조건 수행
    • 처음에 match()를 사용하여 일치하는 문자열 반환하려 했으나 일치하지 않을 때 null이 반환되어 replace()로 조건과 맞지 않는 문자열 교체하도록 하여 문제 해결
  • 코드

  function solution(new_id) {
      let answer = '';
      var reg = /[\{\}\[\]\/?,;:|\)*~`!^\+<>@\#$%&\\\=\(\'\"]/g;
      answer = new_id.toLowerCase()
          .replace(reg, '')
          .replace(/\.{2,}/g, '.')
          .replace(/^\.|\.$/g, '')
          .substr(0, 15)
          .replace(/^\.|\.$/g, '');

      if(!answer) answer = 'a';
      const last = answer[answer.length-1];
      while(answer.length <= 2) answer += last;

      return answer;
  }