我正在尝试检查密码是否仅由数字组成。这是来自代码战的挑战。他们中的大多数人使用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”测试,结果是错误的。我是初学者,所以放轻松:)
3 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
仅检查false条件,这意味着如果任何字符不是数字,则返回 False。我还对您的代码进行了修改,即长度条件,它可以是for循环的父范围,这可能会减少额外的检查。
function validatePIN(pin) {
if (pin.length === 4 || pin.length === 6) {
for (var i = 0; i < pin.length; i++) {
if (pin.charCodeAt(i) < 48 || pin.charCodeAt(i) > 58) {
return false;
}
}
return true
}
return false;
}
console.log(validatePIN('1q23'));
console.log(validatePIN('q23'));
茅侃侃
TA贡献1842条经验 获得超21个赞
您只是在检查第一个值。把你的return true
后你的for
循环。基本上你想退出循环并false
在找到非数字时返回。否则,如果您在没有找到数字的情况下通过循环,则返回true
.
添加回答
举报
0/150
提交
取消