如何在javascript中验证变量的数据类型?
在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
谢谢。如果您只处理文字符号,而不是构造函数,则可以使用: 例如:
>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
时,我们才能获得对象包装器。:-)