문제 설명
문자열 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