const isLengthCorrect = (str) => {
return str.length == 4 || str.length == 6;
};
const isOnlyNumber = (str) => {
for (const el of str) {
const convertedEl = parseInt(el);
if (isNaN(convertedEl)) {
return false;
}
}
return true;
};
const solution = (s) => {
return isLengthCorrect(s) && isOnlyNumber(s);
};
혹시 순회를 돌지 않고도 숫자 여부를 판별할 수 있을까 싶어서 문자열 전체에 parseInt함수를 적용해봤는데 예상과는 다르게 '123a'를 NaN으로 반환하지 않고 123을 반환했다.
('몰입! 자바스크립트'에 나온 내용인데 완전히 잊고 있었다)
다른 사람의 풀이를 보니 결국 문자열 계열의 끝판왕은 정규표현식인 것 같다.
(이건 또 언제 공부하는데...)
function solution(s) {
return !/\D/.test(s) && (s.length == 4 || s.length == 6);
}
정규표현식을 대단히 고급스럽게 쓰지 못하더라도 이 정도는 쓸 줄 알아야...
D : 숫자가 아닌 문자