查找prompt()变量的简单警报,作为字符串或数字

时间:2015-07-03 03:30:11

标签: javascript

我的搜索非常简单,我想设置一个prompt()变量,然后检查typeof变量是否为string然后是alert("这是字符串"),否则if是一个数字然后alert是一个数字否则提醒其他人。 我已经尝试过这个但它没有工作...... var text = prompt("输入你的名字"); if(typeof text ===" number"){     警报("这不是数字"); }  else if(typeof text ===" string"){     警告("这是一个字符串"); } 其他{     警报("无论如何......感谢试试"); }

3 个答案:

答案 0 :(得分:3)

如果用户输入响应(即使它是空白的,或看起来像数字),prompt()的返回值的类型将始终为String,如果用户取消,则为null对话框。它永远不是一个数字。

如果您想知道用户是否输入了一个可以解释的字符串作为数字,那完全是另一回事。考虑:

if (!isNaN(parseFloat(text))) {
    alert("it's a number");
}

(但请注意,有一些警告与parseFloat()相关联;特别是,它会忽略尾随垃圾。123.45xyz会被解析为123.45。)

答案 1 :(得分:2)

使用双等号而不是三等号,并在检查typeof时,使用您正在检查的对象周围的括号。另外,如果你处于第二种情况,最好使用else。

答案 2 :(得分:2)

你的第一个陈述应该是“这是一个数字”。 Prompt()将返回值作为字符串,因此第一个条件将始终为false。您可以更改条件以使用isNan(文本)。你第一个条件与其余的代码看起来像这样,应该工作。你可能永远不会遇到最后一个条件。

var text = prompt("enter your name");
if (!isNaN(text)) {
    alert("this is a number");
} else if (typeof text === "string") {
    alert("this is a string");
} else {
    alert("anyway.. thanks to try");
}