문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
function solution(s) {
var answer = false; // 기본값은 false로 지정한다
let newS = s.split(''); // 문자열들을 배열로 나눈 뒤
if(s.length === 4 || s.length === 6){ // 만약 4글자이거나 6글자라면
for(let i = 0; i<newS.length; i++){ // 배열의 length만큼 for문을 돈다
if(isNaN(newS[i]/1)){ // 배열의 값이 isNaN 이라면
return false; // false를 return 하고
}
} answer = true; // return 하지 않고 for문이 끝났다면 answer은 true를 담는다
}
return answer; // answer을 return한다.
}
function alpha_string46(s){
var regex = /^\d{6}$|^\d{4}$/; // 정규식표현을 변수에 담고
return regex.test(s); // 그 변수에 test메서드로 true/false 반환
}
isNaN (메서드)
isNaN() 함수는 어떤 값이 NaN인지 판별합니다_MDN문서링크isNaN이라는 값을 console로 찍어보고 하는데, 그 값으로 true,flase를 낼 수가 없었다.
다른 type들은 확인이 잘 되는데 얘는 왜 안될까? 내가 뭘 잘못하는걸까? 싶어서
그제서야 검색을 해 보았더니 isNaN이라는 함수를 발견하게 되어 사용하게 되었다.
역시 모르는건 검색이 답이고 내가 모르는 함수는 아직도 많다는 것을 ..
알게되면 나중에 결국 유용하게 쓰이는 함수들 , 프로그래머스를 풀면서 많이 알게되고있다.
.test()
test() 메서드는 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환합니다 _MDN문서링크다른분이 정규식으로 푸신걸 보고 .test라는 메서드도 찾아봐서 새로운 메서드도 알게 되었고,
정규식에 이전에 공부했던 부분에 대해서 다시 짚어보았다.
드림코딩 앨리님 영상보고 공부!
/^ \ d { 6 } $ | ^ \ d { 4 } $/
정규식 | 해석 |
---|---|
/ ~ / | ~ 안에 표현 하겠다 |
^ | 문장의 시작 |
{min,} | 최소, {6} / {4} |
\d | digit 숫자 |
$ | 문장의 끝 |
| | 또는 |
해석으로 표현해봐도 어렵다 😅