判斷整數的方法有兩種:正則判斷和逐字判斷。
由於逐字判斷效率過於低下,這裡就不予描述了,有興趣的看客可以自己谷歌。
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/