본문 바로가기

Algorithm

[프로그래머스] 신규 아이디 추천 with Javascript

신규 아이디 추천

2021 KAKAO BLIND RECRUITMENT

문제보기

 

제출답안

function solution(new_id) {
    const reg = /^[a-z0-9-_.]$/;
    const tmp = new_id.toLowerCase().split('').filter((v) => reg.test(v));
    const answer = [];
    tmp.forEach((v) => {
        answer.push(v);
        if (v === '.' && answer[answer.length - 2] === v) answer.pop();
    });
    if (answer[0] === '.') answer.shift();
    if (answer[answer.length - 1] === '.') answer.pop();
    if (answer.length < 1) answer.push('a');
    if (answer.length > 15) answer.splice(15);
    if (answer[answer.length - 1] === '.') answer.pop();
    while (answer.length < 3) answer.push(answer[answer.length - 1]);
    return answer.join('');
}

 

풀이

  • 문제에서 설명하고 있는 7단계 처리 과정대로 코드 작성

 

학습내용

정규표현식

패턴 생성

  • 2단계에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)만 사용가능하다는 조건을 참고
  • 변수 reg에 저장
  • 자바스크립트에서 정규식 패턴을 사용하기 위해서는 슬래시(/)로 감싸서 작성해야 한다.

정규 표현식 메서드 test

  • 형태 : '정규식 패턴'.test(판별할 문자)
  • 판별을 만족하면 true를 반환
  • 배열 메서드 filter와 함께 사용하여 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)인 문자만 배열 tmp에 저장

그 외

  • 문자열 메서드 match, replace, split, search와도 함께 사용 가능하다.

배열 활용

조건에 맞게 조작하기 위해 문자열 하나하나 쪼개어 배열에 보관했다.


참고

 

정규 표현식 - JavaScript | MDN

정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다. JavaScript에서는 정규 표현식도 객체로서, RegExp의 exec()와 test() 메서드를 사용할 수 있습니다. String의 match(), matchA

developer.mozilla.org