문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s | return |
---|---|
'a234' | false |
'1234' | true |
function solution (s) {
return (s.length === 4 || s.length === 6) && isNaN(s) === false ? true : false
}
문제를 보고 굉장히 간단하다고 생각하고 쉽게 접근했다.
설명에 나온 그대로 삼항연산자로 풀이했더니 16개의 테스트 중 하나를 통과 못하는 일이 벌어졌다!
function solution (s) {
return (s.length === 4 || s.length === 6) && /^[0-9]+$/.test(s) ? true : false
}
테스트에 왜 통과하지 못했는지 알아보니 소수점때문이란다.
정규식을 사용해야 한다는 걸 보고 처음엔 /^[/d]+$/ 이렇게 숫자만 포함하는 정규식으로 사용했다가 제한사항에 s는 문자열이라는 걸 보고 다시 수정!
기업협업에서 테스트코드 작성해본다고 나름 정규식 공부를 했었는데.. 실전에 써먹으려면 아직 한참 공부해야겠다..!