LEATH
2021-08-26 14:39:25
我正在嘗試檢查密碼是否僅由數字組成。這是來自代碼戰的挑戰。他們中的大多數人使用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條經驗 獲得超22個贊
您只是在檢查第一個值。把你的return true
后你的for
循環?;旧夏阆胪顺鲅h并false
在找到非數字時返回。否則,如果您在沒有找到數字的情況下通過循環,則返回true
.
添加回答
舉報
0/150
提交
取消