본문 바로가기

알고리즘 코딩

정규 표현식으로 숫자만 들어가는지 확인하기

자세한 문제는 아래 링크와 같다. 

https://school.programmers.co.kr/learn/courses/30/lessons/12918

 

처음에 isNaN() 메서드를 사용했었는데, 이걸로 숫자로만 이뤄져 있는지 확인하면 소수점이 달린 수 또한 숫자로 보아 소수점 포함 6개의 자리수가 있으면 숫자로 보게 된다.  예를 들어 4.4412 도 . 을 포함해 6개의 문제로 이뤄져 있으니  결국 true를 리턴하게 된다. 이 문제를 해결하기 위해 구글링 해보았다.

 

우여곡절 끝에 인터넷에서 찾은 코드는 아래와 같다. 자세한 내용은 주석 달았으니 참고 바란다.

    function solution(s) {
        answer = (s.length===4 || s.length===6) && /^[0-9]*$/.test(s);
        // 이렇게 삼항연산자에서도 || 또는 && 중 먼 수행할 연산자를 정하기 위 소괄호를 쓸 수 있다.
        //  /^[0-9]*$/.test(s) 부분의 코는 chat gpt를 참조할 것. 
        // 문자열 s 안에 0 ~ 9까지의 숫자가 0개 이상 존재하는지 여부를 test해 준다. 숫자가 없거나, 다른 형태의 문자가 오면 false 를 리턴한다.
        console.log(answer)


        return answer
    }
    

s= '555b'
solution(s)