我可以使用 ASCII 检查密码是否由数字组成吗?

我正在尝试检查密码是否仅由数字组成。


这是来自代码战的挑战。他们中的大多数人使用jQuery来解决这个问题,但我不熟悉它,我认为它可以与ASCII一起使用。


function validatePIN(pin) {

  for (var i = 0; i < pin.length; i++) {

    if ((pin.length === 4 || pin.length === 6) && (pin.charCodeAt(i) >= 48 && pin.charCodeAt(i) < 58)) {

      return true;

    } else {

      return false;

    }

  }

}

例如,当我使用“1q23”进行测试时,返回为真。但是如果我用“q123”测试,结果是错误的。我是初学者,所以放轻松:)


LEATH
浏览 180回答 3
3回答

慕盖茨4494581

仅检查false条件,这意味着如果任何字符不是数字,则返回 False。我还对您的代码进行了修改,即长度条件,它可以是for循环的父范围,这可能会减少额外的检查。function validatePIN(pin) {&nbsp; &nbsp; if (pin.length === 4 || pin.length === 6) {&nbsp; &nbsp; &nbsp; &nbsp; for (var i = 0; i < pin.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (pin.charCodeAt(i) < 48 || pin.charCodeAt(i) > 58) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; return true&nbsp; &nbsp; }&nbsp; &nbsp; return&nbsp; false;}console.log(validatePIN('1q23'));console.log(validatePIN('q23'));

茅侃侃

您只是在检查第一个值。把你的return true后你的for循环。基本上你想退出循环并false在找到非数字时返回。否则,如果您在没有找到数字的情况下通过循环,则返回true.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript