문자열 다루기 기본

yejin·2022년 1월 18일
0

javascript 알고리즘

목록 보기
15/20

https://programmers.co.kr/learn/courses/30/lessons/12918#qna

문제 설명

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

제한 사항

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

입출력 예

sreturn
"a234"false
"1234"true

내 풀이

function solution(s) {
    var answer = true;
    var int = Number(s);
    if (s==int) return answer;
    else return answer=false;
}

이렇게 했더니 다른건 다 통과인데 5,6,11번 테스트에서 오류가 났다.
알고보니 5,6번은 문자열 길이때문이고, 11번은 문자열에 "e"를 숫자로 인식해서 그랬던것이다.

function solution(s) {
  var temp = parseInt(s);
  if(s==temp && s.length===4 && s.length===6){
    return true;
  }
  return false;
}

안됨

function solution(s) {
  var temp = parseInt(s);
  if(s.length===4 && s.length===6){
      if(s===temp) return true;
  } else return false;
 }

안됨

function solution(s) {
  var temp = parseInt(s);
  if((s.length===4 && s.length===6) && s==temp) {
      return true;
  } else return false;
 }

안됨 => false만 출력되고 true를 출력하지 않음

다른 풀이

function solution(s) {
    return (s.length===4 || s.length===6) && /^[0-9]+$/.test(s);
}

이렇게하니까 잘돌아감

test() 메서드는 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환함.

/^[0-9]*$/ 가 숫자만 있는지 확인할때 가장 많이 쓰는 방법이라고 함.

정규표현식 자주 쓰는 표현
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jeongju02&logNo=221517177533

profile
♪(๑ᴖ◡ᴖ๑)♪ 기회는 도전에서부터 시작되는 것

0개의 댓글