차차로그
[JS] 연습문제 > 문자열 다루기 기본 본문
function solution(s) {
return s.search(/\D/g) < 0 && (s.length == 4 || s.length == 6) ? true : false;
}
문자열.search(정규식)으로 정규식과 일치하는 부분이 없다면 -1을 리턴한다는 것을 이용해
/\D/g 정규표현식의미가 모든 문자열이 숫자가 아니라는 뜻이므로 s에 숫자로만 이루어져 있다면 -1을 반환하게 된다.
그리고 길이가 4또는 6이여야하기 때문에 정규표현식과 길이 모두 true라면 true를 반환하고 하나라도 맞지 않다면 false를 반환한다.
function solution(s) {
return (/^\d{4}$|^\d{6}$/).test(s);
}
다르게 표현도 가능하다.
문자열이 숫자로만 구성되어있고(^\d$) 길이가 4글자 또는 6글자({4} | {6})라는 뜻의 정규식.test(문자열)을 하면
정규식과 문자열이 일치할 때 true를 리턴해준다.
function solution(s) {
return s.length == 6 || s.length == 4 ? !isNaN(s) ? true : false : false;
}
isNaN(문자열)로 문자열이 숫자인지 아닌지도 판단이 가능한데, 이 메소드를 사용하는 경우엔
문자열을 Number타입으로 변환을 시킨 후 숫자인지를 판단하게 된다.
조심해야 할 점은 js에는 지수/진법 표현법이 있기 때문에 아래처럼 문자열이 제시된다면 이것을 숫자로 그대로 반환해버리기 때문에 오류가 발생한다.
'코딩테스트' 카테고리의 다른 글
[JS] 연습문제 > 이상한 문자 만들기 (0) | 2022.08.29 |
---|---|
[JS] 연습문제 > 하샤드 수 (0) | 2022.08.29 |
[JS] Summer/Winter Coding(~2018) > 예산 (0) | 2022.08.26 |
[JS] 2022 KAKAO BLIND RECRUITMENT > 신고 결과 받기 (0) | 2022.08.26 |
[JS] 연습문제 > 행렬의 덧셈 (0) | 2022.08.24 |
Comments