带有数字后字符的 parseFloat

我有一个输入,用户在其中引入了数字、整数或浮点数。我想知道它的数字是否正确,例如检查输入2r是否正确。我的第一种方法是使用parseFloat,但它并没有抱怨:

parseFloat('2r')   // returns 2

实际上,这是根据文档的预期行为

你如何检查它2r是错误的?


阿晨1998
浏览 186回答 3
3回答

侃侃无极

这不是错误parseFloat,似乎您在追求其他东西。试号;Number('2r'); // returns Nan

慕仙森

它有据可查如果 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" } });

红颜莎娜

这是预期的行为 - parseFloat 和类似的将忽略实数后面的任何“垃圾”。如果您需要验证这是一个整体的实数,那么有多种策略可以使用,其中最简单的是尝试数学运算,例如乘以一。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript