알고리즘 9 - Regex validate PIN code

박진현·2021년 7월 11일
0

Q.

ATM machines allow 4 or 6 digit PIN codes and PIN codes cannot contain anything but exactly 4 digits or exactly 6 digits.

If the function is passed a valid PIN string, return true, else return false.

Examples
"1234" --> true
"12345" --> false
"a234" --> false

A)

function validatePIN (pin) {
  //return true or false
  if(isNaN(pin)) return false
  if(+pin < 0) return false
  if(!Number.isInteger(+pin)) return false
  for(i=0;i<pin.length;i++) {
    if(pin[i] === '.') {
      return false
    }
    if(pin[i] === '\n') {
      return false
    }
    if(pin[i] === '+' || pin[i] === '-'){
      return false
    }
  }
  if(pin.length !== 4 && pin.length !== 6) return false
  return true
}

풀고나서 솔루션을 보니까 정규표현식을 사용했더라.. 아 진짜 바보 같다.. 그래서 다시 풀어 봤다.

function validatePIN (pin) {
  //return true or false
  if(pin.length !== 4 && pin.length !== 6) {
    return false
  }
  for(i=0;i<pin.length;i++) {
    if(/\d/g.test(pin[i]) === false){
      return false
    }
  }
  return true
}
profile
👨🏻‍💻 호기심이 많고 에러를 좋아하는 프론트엔드 개발자 박진현 입니다.

0개의 댓글