为了账号安全,请及时绑定邮箱和手机立即绑定

有字母时parseInt不返回NaN

有字母时parseInt不返回NaN

手掌心 2021-04-29 09:10:17
parseInt('5aab4') //5 // I expect the output is NaN.由于parseInt,我的逻辑失败了。我假设当输入包含字母时parseInt总是返回NaN?
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

否,parseInt()在某些数字字符之后允许使用“垃圾”(非数字)字符。该parseFloat()功能具有相同的“功能”。

如果要获取数字,则可以使用Number("123")或简单地使用+一元运算符。但是,这些代码可以接受任何JavaScript数字,包括带有小数部分或科学计数形式的数字的JavaScript数字。但是,NaN如果字符串输入不是有效的数字常量,则这些方法将失败并给出。

你可以做类似的事情

if (+someString === Math.floor(+someString))

我猜。

编辑—评论指出您还希望检查空字符串或全空格字符串的简写情况。/^\d+$/另一种选择是使用简单的正则表达式(),然后进行健全性检查,以确保其长度不超过200位(一个月可能还有其他数字)。


查看完整回答
反对 回复 2021-05-13
?
杨魅力

TA贡献1811条经验 获得超6个赞

如果您想检查NaN另一种方法,请使用进行测试isNaN()。 isNaN()将返回一个布尔值,为您提供给定输入的验证。

parseInt('5aab4') //5
isNaN('5aab4') // true


查看完整回答
反对 回复 2021-05-13
  • 2 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信