Javascript 用数字后面的字符分析浮点

Javascript 用数字后面的字符分析浮点,javascript,parsefloat,Javascript,Parsefloat,我有一个输入,用户在其中引入数字、整数或浮点。我想知道数字是否正确,例如,检查输入2r是否不正确。我的第一种方法是使用parseFloat,但它并不抱怨: parseFloat('2r') // returns 2 事实上,这是根据 如何检查2r是否错误?这是预期的行为-parseFloat和类似工具将忽略实数后面的任何“垃圾” 如果您需要验证这是一个实数作为一个整体,那么有多种策略可供使用,其中最简单的是尝试数学运算,例如乘以一。这不是parseFloat的错误,似乎您在追求其他东西 试

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

parseFloat('2r')   // returns 2
事实上,这是根据


如何检查
2r
是否错误?

这是预期的行为-parseFloat和类似工具将忽略实数后面的任何“垃圾”


如果您需要验证这是一个实数作为一个整体,那么有多种策略可供使用,其中最简单的是尝试数学运算,例如乘以一。

这不是
parseFloat
的错误,似乎您在追求其他东西

试一试号码

编号('2r');//返回楠
它是

如果parseFloat遇到加号(+)以外的字符,则为减号 符号(-U+002D连字符减号)、数字(0-9)、小数点(.)或 指数(e或e),它返回该字符的值,忽略 无效字符及其后面的字符

以下示例均返回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" } });

'2r'+0
只会导致
'2r0'
…正如Mike所说,这是预期的行为。看见如本参考中所述,使用Number()函数进行更严格的解析。parseFloat('2r'+0)再次返回2 rry,miss记得-parseFloat('2r'*1)给出NaN