如何在javascript中验证变量的数据类型?

如何在javascript中验证变量的数据类型?,javascript,html,Javascript,Html,在Javascript中,是否有方法检查或验证变量的数据类型?我需要允许用户在文本框中输入浮点值 谢谢。如果您只处理文字符号,而不是构造函数,则可以使用: 例如: >var a = 1; >var b = "asdasd"; >typeof(b); "string" >typeof(a); "number" >var a = 1; >isNumber(1); True >var a = 0.34324324324; >Float(a); tru

在Javascript中,是否有方法检查或验证变量的数据类型?我需要允许用户在文本框中输入浮点值


谢谢。

如果您只处理文字符号,而不是构造函数,则可以使用:

例如:

>var a = 1;
>var b = "asdasd";
>typeof(b);
"string"
>typeof(a);
"number"
>var a = 1;
>isNumber(1);
True
>var a = 0.34324324324;
>Float(a);
true
>var int = 3;
>Float(int);
false
---编辑--- 要验证数字或浮点值,请使用:

function isNumber (n) {
  return ! isNaN (n-0);
}
例如:

>var a = 1;
>var b = "asdasd";
>typeof(b);
"string"
>typeof(a);
"number"
>var a = 1;
>isNumber(1);
True
>var a = 0.34324324324;
>Float(a);
true
>var int = 3;
>Float(int);
false
包含浮点,使用
parsefloat

function isIntandFloat(n) {
   return typeof n === 'number' && parseFloat(n) == parseInt(n, 10) && !isNaN(n);
}
或者,如果您只想
float
使用以下选项:

function Float (n) {
  return n===+n && n!==(n|0);
}
例如:

>var a = 1;
>var b = "asdasd";
>typeof(b);
"string"
>typeof(a);
"number"
>var a = 1;
>isNumber(1);
True
>var a = 0.34324324324;
>Float(a);
true
>var int = 3;
>Float(int);
false

文本框将始终为您提供
字符串
基本值

您想要的是查看输入是否可以从
字符串
转换为
数字
。为此,您可以使用
parseFloat()

如果需要更严格的评估,请使用
Number
功能

var num = Number(textbox.value);

if (isNaN(num)) {
    alert("Invalid input");
}

在这里发布之前,你做过简单的谷歌搜索吗?这在网上已经被问了无数次了。很抱歉问这个问题。因为我是javascript的初学者,所以我无法在谷歌上得到一个清晰的东西。无论如何,谢谢stackoverflow。我之所以选择+1是因为这是一个有效的问题,然后选择-1是因为懒惰,因为答案可以在大量资源中轻松找到。这是基本的表单验证,应该随您选择的开发环境一起提供。他实际上不是指类型。他希望用户只输入数字,可以选择使用十进制值。对于浮点值验证,是否有类似的功能?@user1671639是的,有,我在回答中添加了它。为什么不绑定到向下键和大写字母?但是
parseFloat()
不会告诉您输入的值是否确实是数字,因为
parseFloat(“123abc”)
返回
123
@Jeroen-这不会阻止粘贴和拖放无效值。@nnnnnn:没错,但它是可转换的,提供了一个有效的数字。这取决于OP希望接受的输入。为什么不使用
+textbox.value
?输入“123abc”似乎失败,但不需要创建编号object@Ian:是的,一元
+
也可以使用,但是
数字对于初学者来说更清晰一些。使用
Number
实际上不会创建对象。我们仍然得到原始数。只有使用
new
时,我们才能获得对象包装器。:-)