如何在提示窗口中区分空字符串和空字符串?

时间:2019-08-15 21:56:19

标签: javascript prompt

在以下情况下,我必须检查(必须输入提示窗口)用户是否输入正确答案:

  1. 如果用户输入的答案正确,则提醒您“您是正确的”。
  2. 如果用户输入了错误的答案或将其留空,则警告“您错了” 3如果用户按下“取消”按钮,则什么也不会发生。
RUN apk update \
 && apk add --no-cache  \
    build-base  \
    ruby-dev

发生的是,即使我按取消,警报也会显示“您错了”。我仅出于示例添加了取消的警报。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您有两个问题。

首先,您正在运行promptparseInt的返回值。之前,要测试它是否为空字符串或null。

那么您就不会在null和“不是结果”之间进行区分。

  • 开始测试前请勿parseInt
  • 测试null 之前,测试!== result
  • 测试userInput === parseInt(result, 10)(始终使用带有parseInt的基数)

答案 1 :(得分:0)

if (userInput === result){
    alert('You are correct!');
} else if (isNaN(userInput)) {
    alert('Cancelled!');
} else if (userInput === '' || userInput !== result) {
    alert('You are wrong!');
}

答案 2 :(得分:0)

parseInt返回的值永远不会严格等于null。调用input之前,请先测试parseInt

这是一种有效的方法:

const
  rand0To9 = () => Math.floor(Math.random() * 9 + 1),
  num1 = rand0To9(),
  num2 = rand0To9(),
  result = num1 * num2,
  input = prompt(`What is ${num1} * ${num2}?`);

if (input !== null){
  alert(`You are ${ parseInt(input, 10) == result ? "correct" : "wrong" }!`);
}