首页 > 解决方案 > 如何使用 javascript 验证 pin?

问题描述

我遇到了这个问题。非常感谢任何反馈。

“ATM 机允许 4 位或 6 位 PIN 码,而 PIN 码只能包含 4 位或 6 位数字。

如果函数传递了一个有效的 PIN 字符串,则返回 true,否则返回 false。”

到目前为止,这是我的代码:

  if (pin.length === 4 || pin.length === 6) {
    return true 
  } else {
    return false
    }
 if ((pin.matches(/\b(\w)/g))) {
      return true
    } else {
      return pin
    }
  }

它只是通过了一些关于代码战的测试。我认为我有太多的 if 语句?

标签: javascript

解决方案


只需添加一个额外的条件来检查字符串在转换为数字后是否实际上是一个数字。

function test(pin) {
  if ((pin.length === 4 || pin.length === 6) && Number.isInteger(+pin)) {
    return true
  } else {
    return false
  }
}

console.log(test('123'));
console.log(test('1234'));
console.log(test('123a'));
console.log(test('asbcf'));
console.log(test('125676'));


推荐阅读