문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
s
는 길이 1 이상, 길이 8 이하인 문자열입니다.s
는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.입출력 예
s return "a234" false "1234" true
function solution(s) {
if(s.length !== 4 && s.length !== 6) return false;
for (let i = 0; i < s.length; i ++){
if(isNaN(Number(s[i]))) return false;
}
return true
}
- s의 길이가 4 또는 6이 아닐 경우 false를 반환하는 로직을 만들어준다
- s의 i를 숫자로 변환 후 isNaN( ) - 숫자인지 검사하는 메서드를 이용해 조건이 true라면 false를 반환한다
즉, s의 첫번째 값으로 a가 들어오고 isNaN(Number(a))는 true라서 false를 반환한다- 조건문에 걸리지 않으면 true를 반환한다
function solution(s) {
// 문자열의 시작과 끝이 숫자 6개로 이루어짐 or 문자열의 시작과 끝이 숫자 4개로 이루어짐
let regex = /^\d{4}|^\d{6}$/
return regex.test(s)
}
정규식표현을 이용해 문제를 푸는 방법이다
- /pattern/ -> 슬래시로 패턴을 감싸준다
- ^ -> 문자열의 시작을 나타낸다
- \d -> 숫자를 표현한다
- {n} -> 반복하는 횟수를 의미한다
- $ -> 문자열의 끝을 나타낸다
- | -> "또는"을 의미한다
- test ( ) -> 주어진 문자열이 정규식표현을 만족하는지 판별하고 true, false를 반환한다