parseInt 替代方法,当字符串实际上不包含真正的整数时返回 NaN



在这种情况下,parseInt 返回12

"12.5 Im the king of the world"

是否有 JavaScript 的原生函数来检查字符串并在字符串不真正表示整数时返回 NaN?

您可以使用+一元运算符,该运算符执行与 Number 构造函数相同的操作,然后显式检查结果是否为整数:

var str = "12.5 whatever";
var int = +str;
if (isNaN(int) || Math.floor(int) !== int)
// not an integer
else
// an integer

这将允许您确定原始字符串中是否有垃圾,但也检查字符串是否表示整数而不是带有小数部分的数字。

我认为 + 运算符是您要查找的:

let foo = "12.5 Im the king of the world";
let bar = parseInt(foo);
let baz = +foo;
console.log(bar, typeof bar);
console.log(baz, typeof baz);

这将返回:

12 'number'
NaN 'number'

最新更新