如何在JavaScript中捕获无效用户输入



它检查数字是否较大或较小,以及用户是否已通过输入"q"退出。但它并没有像"&, *, (, p, ]""while(!guess)"那样捕获无效输入。

let guess = window.prompt('guess the number!');
const rand = Math.floor(Math.random() * 10) + 1;
let tries = 0;
while (!guess) {
let guess = parseInt(prompt('enter a valid number'));
}
while (parseInt(guess) !== rand) {
tries += 1;
if (guess === 'q') {
console.log('you have exited');
break;
}
if (guess < rand) guess = prompt('enter higher!');
else guess > rand;
guess = prompt('enter lower!');
}
console.log(`correct number is : ${rand} and it took you ${tries} tries`);

您可以在每个条件之间使用else-if。你的最后一个答案是,"按下无效键"。再试一次。">

if (guess === 'q') {...} else
if (parseInt(guess) < rand) {...} else
if (parseInt(guess) > rand {...}
else guess = prompt('Invalid key entered. Please try again.');

您可以使用Regex和String.test比较guess的值,看看它是否与任何特殊字符匹配。

while (!guess || /[&*()[]p]/g.test(guess)) {
let guess = prompt('enter a valid number');
}

最新更新