简单的PIN验证

Simple PIN validation

本文关键字:验证 PIN 简单      更新时间:2023-09-26

任务:ATM机允许4或6位PIN码,PIN码只能包含4位或6位。如果函数传递了一个有效的PIN字符串,则返回true,否则返回false。

我的解决方案:

function validatePIN (pin) {
  //return true or false
  if (!isNaN(pin) && Number.isInteger(pin) && pin.toString().length == 4 || pin.toString().length == 6) { 
    return true 
  } else { 
    return false 
  }
}

我遇到的唯一错误是,当我将4位数字作为字符串("1234"(传递时,它等于false

function validatePIN (pin) {
  return typeof pin === 'string' && // verify that the pin is a string
    Number.isInteger(+pin) && // make sure that the string is an integer when converted into a number
    [4, 6].includes(pin.length) // only accepts 4 and 6 character pins
}
function validatePIN(pin) {
var isNumber = /^'d+$/.test(pin) && (pin.length == 4 || pin.length == 6)
return isNumber
}
validatePIN('0193')
//returns true

您可以使用Array.prototype.every()Array.prototype.some()String.prototype.match()

<input type="text" />
<button>validate pin</button>
<script>
  var validatePIN = (args) => {[...args] = args;
 return args.every(v => v.match(/'d/)) &&
    [4, 6].some(n => args.length === n)};
  document.querySelector("button")
  .addEventListener("click", (e) =>
    alert(validatePIN(e.target.previousElementSibling.value))
  )
</script>

function validatePIN (pin) {
  //return true or false
  return /^'d+$/.test(pin) && (pin.length === 4 || pin.length === 6)
}
function validatePIN (pin) {
    if (pin.length !== 4 && pin.length !== 6) {
    return false;
  }
  for (let i = 0; i < pin.length; i++) {
    if (pin[i] > '9' || pin[i] < '0') {
       return false;
    }
  }
  return true;
}

这里是使用正则表达式求解的另一种方法。

function validatePIN(pin) {
  return /^('d{4}|'d{6})$/.test(pin)
}
validatePIN('2345')
//returns true
validatePIN('2.45')
//reutrns false
function validatePIN (pin) {
  if (pin.length == 4 || pin.length == 6) 
    {
      for (let i = 0; i < pin.length; i++)
        {
          if (pin[i] == "0" ||
              pin[i] == "1" ||
              pin[i] == "2" ||
              pin[i] == "3" ||
              pin[i] == "4" ||
              pin[i] == "5" ||
              pin[i] == "6" ||
              pin[i] == "7" ||
              pin[i] == "8" ||
              pin[i] == "9") ;
          else return false;
        }
      return true;
    }
  else return false;
}

此代码检查PIN长度,并通过所有带有数字而非数字的测试任务。。。

public static boolean validatePin(String pin) {
  return pin.matches("''d{4}|''d{6}");
}