前端:判断输入的数据是否为整数

ES6提供了Number.isInteger 

因为获取到的value一般为字符串,所以先将其转换parseInt(),再判断

PS:因parseInt()若是数字与非数字组合,如果是字母打头,直接返回NaN,因为没有截取到数字部分,取不到整数,将返回NaN。如果是数字打头,截取数字部分,遇到非数字或者小数点停止截取,返回结果。所以console.log("修改后的数据是否为整数==>",Number.isInteger(parseInt(value))) 有缺陷。(感谢码友提出缺陷♪(・ω・)ノ)

修复:使用parseInt前后,判断两个字符串长度是否相同。

 

parseInt('a123');//----------返回NaN
parseInt('1a23’);// ---------返回1
parseInt('12a.3');// ---------返回12
parseInt('123.a1');//----------返回123
parseInt('0a11');//-----------返回0
value = "5lkk"
value2 = parseInt(value)
console.log("value=",value) 
console.log("value.length=",value.length ) 
console.log("value2=",value2 ) 
console.log("String(value2).length=",String(value2).length) 
if(value.length == String(value2).length && Number.isInteger(value2)){
console.log("整数") 
}else console.log("bushi整数") 

// console.log("修改后的数据是否为整数==>",Number.isInteger(parseInt(value)))
//PS:因parseInt()若是数字与非数字组合,如果是字母打头,直接返回NaN,因为没有截取到数字部分,取不到
//整数,将返回NaN。如果是数字打头,截取数字部分,遇到非数字或者小数点停止截取,返回结果。所以console.log("修改后的数据是否为整数==>",Number.isInteger(parseInt(value))) 有缺陷。
Number.isInteger(10) // true
Number.isInteger(3.3) // false
Number.isInteger('') // false
Number.isInteger('3') // false
Number.isInteger(true) // false
Number.isInteger([]) // false

猜你喜欢

转载自blog.csdn.net/weixin_38676276/article/details/107473436
今日推荐