在jquery中检测数字是INT还是FLOAT

Detect if number is INT or FLOAT in jquery

本文关键字:INT 还是 FLOAT 数字 jquery 检测      更新时间:2023-09-26

>我目前正在文本框中输入并在提交时进行输入,我正在验证输入,输入需要是一个大于 0 的数字,它应该是整数并且不包含小数点。问题是我找不到任何可以检测它是整数或包含小数点的方法。这是我正在使用的代码。

    txt[5] = $(this).parents('p').find('input:text').val();
    if (txt[5] == "" || isNaN(txt[5]) || txt[5] <= 0) 
    {
        alert("Incorrect Quantity");
        return false;
    }

基本上如您所见,我正在验证用户给出的输入,如果输入错误,我想向他们显示一条消息,所以我目前正在使用 txt[5]%1!=0 来确保只允许 INT,但我对新答案持开放态度。

最简单的方法是将文本解析为 Number,强制转换为整数,并查看它们是否相等:

var numbertxt5 = Number(txt[5]);
if(numbertxt5 | 0 == numbertxt5) { /* int */
} else if (!isNaN(numbertxt5)) { /* float */
} else { /* not a number */
txt[5] = parseInt($(this).parents('p').find('input:text').val(), 10);

这不会验证数字(参见 Nirk 的答案),但如果它不是 int,它将被转换为 int。

这是因为JavaScript只有一种称为number的数字类型。它既不int也不float,但它的行为一次都像两者。但是,您确实有两种方法可用于此parseIntparseFloat

var result = parseInt($(this).parents('p').find('input:text').val());
txt[5] = result;

使用parseFloat类似。例如。

var result = parseFloat($(this).parents('p').find('input:text').val());
txt[5] = result;

第二个示例不是您想要的,但这里仅供参考。

更新:@bfavaretto使用我在parseInt中省略的基数提出了一个很好的观点。查看此页面以获取参考 http://www.w3schools.com/jsref/jsref_parseint.asp