在jquery中检测数字是INT还是FLOAT
Detect if number is INT or FLOAT in jquery
>我目前正在文本框中输入并在提交时进行输入,我正在验证输入,输入需要是一个大于 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
,但它的行为一次都像两者。但是,您确实有两种方法可用于此parseInt
和parseFloat
。
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
相关文章:
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我应该使用Ng提交还是点击表格
- 按从高到低对多个int变量进行排序
- 如何在Javascript中读取unsigned int
- 在javascript中确定输入数字是负数还是正数
- 我应该先学习Angularjs还是Laravel
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- 我需要NG-IF/NG-SWITCH还是NG-SHOW&NG-HIDE
- 从int值来看,Javascript日期不正确
- JavaScript警报适用于int,但不适用于string
- 最好使用JavaScript还是XQuery
- 如何从二进制int中获取百分比,每个位表示x%
- Chart.js:将对象而不是int值作为数据传递
- 仅当窗口宽度>940像素,无论是通过页面加载还是调整大小
- 内容脚本是在同一个孤立的世界中运行,还是在不同的孤立世界中运行
- 如何检测我的音频流是:正在播放、暂停还是已完成
- 在jquery中检测数字是INT还是FLOAT
- 如何测试一个值是字符串还是int
- 检查数字是精确的浮点数 (INT) 还是实际浮点值