알고리즘 코딩
정규 표현식으로 숫자만 들어가는지 확인하기
가문비7
2023. 4. 16. 14:29
자세한 문제는 아래 링크와 같다.
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)