문자열 다루기 기본

Jtiiin:K·2023년 11월 20일
0
post-thumbnail

문제설명

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

제한 사항

s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

처음 생각한 코드

  if((s.length==4 || s.length==6) && !isNaN(+s)) {
    return true
  } return false

이렇게 했더니 계속 통과 못하는 테스트가 1개 나타났다!
아무리 생각해도 이유를 모르겠어서 질문 게시판을 봤더니 어떤 분이 반례를 찾아놓으심
입력값 〉 "0x16" 이런 경우 숫자로 인식한다고..

정답

  if(/^[0-9]+$/.test(s) && (s.length==4 || s.length==6)) {
    return true
  } return false

^[0-9]+$

  • ^: 문자열의 시작을 나타냅니다.
  • [0-9]: 0부터 9까지의 숫자 중 하나를 나타냅니다.
  • +: 바로 앞의 패턴이 하나 이상 반복되어야 함을 나타냅니다.
  • $: 문자열의 끝을 나타냅니다.
  • /^[0-9]+$/는 문자열의 시작부터 끝까지가 0에서 9까지의 숫자로만 구성돼 있어야 한다
profile
호기심 많은 귀차니즘의 공부 일기

0개의 댓글