사전캠프 3주차(6/10) TIL

slppills·2024년 6월 10일

TIL

목록 보기
11/69

코드카타 35번 - 문자열 다루기 기본

문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

처음 나의 코드 :

function solution(s) {
    if ((s.length === 4 || s.length === 6) && isNaN(s) === false) {
        return true;
    } else {
        return false;
    }
}

코드를 이렇게 쓰니 테스트 케이스에서 하나 틀렸다고 나왔다. 구글에 찾아보니 isNaN() 함수는 "12e34"같은 문자열도 과학적 표기법(아주 크거나 작은 수)로 판단해서 false를 반환한다고 한다. 그래서 isNaN() 대신 정규 표현식을 써야 숫자만있는지 아닌지 정확히 구분할 수 있었다.

정규표현식 : 문자열에서 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 검색 패턴

문자열에 숫자만 존재하는지 판별하는 정규표현식 : /^\d+$/
나의 최종 코드 :

function solution(s) {
    if ((s.length === 4 || s.length === 6) && /^\d+$/.test(s)) {
        return true;
    } else {
        return false;
    }
}

참고한 정규표현식 모음 블로그 : https://cho2.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%95%EA%B7%9C%EC%8B%9D

0개의 댓글