javascript - 有字母时 parseInt 不返回 NaN

标签 javascript

<分区>

parseInt('5aab4') //5
// I expect the output is NaN.

由于 parseInt,我的逻辑失败了。我假设当输入包含字母时,parseInt 总是返回 NaN?

最佳答案

不,parseInt() 允许在某些数字字符后使用“垃圾”(非数字)字符。 parseFloat() 函数具有相同的“特征”。

如果你想得到一个数字,你可以使用 Number("123") 或简单地使用 + 一元运算符。然而,它们接受任何 JavaScript 数字,包括带有小数部分或科学记数法的数字。但是如果字符串输入不是有效的数字常量,这些方法将失败并给出 NaN

你可以做类似的事情

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

我猜。

edit — 评论指出您还想检查空字符串或全空格字符串的退化情况。一个简单的正则表达式 (/^\d+$/) 后跟完整性检查以确保它不是 200 位长(一个月可能是其他东西)是另一种选择。

关于javascript - 有字母时 parseInt 不返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55856914/

相关文章:

javascript - 用于在 ASP.NET MVC 中动态生成 JavaScript 的混淆器

javascript - 获取页面内容的高度

Javascript:Date() 函数在 Google Chrome 中无法完全运行

javascript - 一个用于计算的js文件

javascript - 根据日期显示/隐藏 div

javascript - 替换时 gulp dest.on 不是一个函数

javascript - 货币数据表格式

javascript - 如何在Javascript中通过多个参数对非常大的数据数组进行排序

javascript - 有问题的 HTML 代码编辑器

javascript - jquery 工作但语法错误