判断整数的方法有两种:正则判断和逐字判断。
由于逐字判断效率过于低下,这里就不予描述了,有兴趣的看客可以自己谷歌。
1.正则判断
var r = /^\+?[1-9][0-9]*$/; //正整数
console.log(r.test(1.23));
效果测试:
http://jsfiddle.net/wzsdp9Lc/
扩展功能列表
"^\\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(
\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(
\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(
\\.\\d+)?$" //浮点数
2.取整判断
该方法的思路是取整后判断是否等于原值
var num=1.23;
if (parseInt(num) != num) {
console.log(num+"为非整数");
}
else{
console.log(num+"为整数");
}
效果测试
http://jsfiddle.net/euvn0L1g/1/