문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
s | return |
---|---|
"a1234" | false |
"1234" | true |
function solution(s) {
var answer = true;
return answer;
}
//첫 번째 풀이
function solution(s) {
return s.match(/\d/g).length == 4 || s.match(/\d/g).length == 6 ;
}
//두 번째 팀원님 풀이
function solution(s) {
var answer = true;
if (s.length !== 4 && s.length !== 6) {
answer = false; //일단 s의 길이를 체크하고
} else {
const arr = s.split(''); //s를 문자 하나씩 자르고
arr.forEach(el => {
isNaN(el) ? (answer = false) : null; //문자 하나라도 숫자가 아니면 (true) answer = false, 맞으면 null
});
}
return answer;
}
나의 첫 번째 풀이에서 고려하지 못한 건, s가 "1e11"와 같이 지수형태의 string일 경우, JavaScript가 숫자로 인식한다는 것이다.
(출처: https://developer.mozilla.org/ko/)
function solution(s){
return /^\d{6}$|^\d{4}$/.test(s);
}
(출처: https://developer.mozilla.org/ko/)