Home 프로그래머스 문자열 다루기 기본 Javascript
Post
Cancel

프로그래머스 문자열 다루기 기본 Javascript

문제 설명

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 “a234”이면 False를 리턴하고 “1234”라면 True를 리턴하면 됩니다.

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

입출력 예

sreturn
“a234”false
“1234”true

풀이방식

정규표현식 매칭패턴에서 \d는 [0-9], 숫자를 의미하고 \D는 반대로 숫자가 아닌것들을 의미한다.

문자열이 정수인지 판별할 때, isNaN으로만 정확하게 판별할 수 없는 이유는 ‘123 ‘처럼 공백이 있어도 NaN이 아니라고 인식하기 때문이다.

1
2
isNaN("123 ");
// false

그래서 이러한 공백을 포함한 다른 기호, 음의 정수라서 -가 끼어있다던가 하는 여러 예외상황을 해결하기 위해서 정규표현식을 사용했다.

search에서 찾으려는 값을 찾으면 해당 index를 반환하고, 아니라면 -1를 반환하는데, 반환값이 -1보다 크다는 것은 숫자 아닌것들 (특수기호 등)을 못찾았다는 의미임으로 s가 숫자로만 이뤄졌다는것을 보장할 수 있다.

1
2
3
4
function solution(s) {
  if (s.length !== 4 || (s.length !== 6 && s.search(/\D/) > -1)) return false;
  return true;
}
This post is licensed under CC BY 4.0 by the author.

Javascript Array.sort() 주의사항

프로그래머스 - 소수 찾기 Javascript