我有一个输入,用户在其中引入了数字、整数或浮点数。我想知道它的数字是否正确,例如检查输入2r是否正确。我的第一种方法是使用parseFloat,但它并没有抱怨:parseFloat('2r') // returns 2实际上,这是根据文档的预期行为你如何检查它2r是错误的?
3 回答
![?](http://img1.sycdn.imooc.com/533e4d510001c2ad02000200-100-100.jpg)
慕仙森
TA贡献1827条经验 获得超8个赞
它有据可查
如果 parseFloat 遇到除加号 (+)、减号 (- U+002D HYPHEN-MINUS)、数字 (0–9)、小数点 (.) 或指数(e 或 E)以外的字符,则返回value 到那个字符,忽略无效字符和它后面的字符。
以下示例均返回 3.14:
parseFloat(3.14);
parseFloat('3.14');
parseFloat(' 3.14 ');
parseFloat('314e-2');
parseFloat('0.0314E+2');
parseFloat('3.14some non-digit characters');
parseFloat({ toString: function() { return "3.14" } });
![?](http://img1.sycdn.imooc.com/54584dd900014f6c02200220-100-100.jpg)
红颜莎娜
TA贡献1842条经验 获得超12个赞
这是预期的行为 - parseFloat 和类似的将忽略实数后面的任何“垃圾”。
如果您需要验证这是一个整体的实数,那么有多种策略可以使用,其中最简单的是尝试数学运算,例如乘以一。
添加回答
举报
0/150
提交
取消