Javascript正则表达式在输入中查找浮点数以外的任何字符

时间:2015-03-25 20:10:31

标签: javascript regex floating-point

用户可以提供任何类型的数据。我需要确保输入字符串只包含浮点数。所以我需要确保数据只包含数字或点(。),如果输入数据不是数字或点,则返回false。有人可以用javascript正则表达式帮助我吗?我试了很多次。但我找不到任何有关我具体案例的帮助。

So this should return characters for cases like
12.09a23
aa12.12
abcd

更新

我不想看输入字符串是否有浮点数。我想看看输入是否有浮点数以外的任何东西。例如,如果输入有12.3aa23,我想显示输入有aa所以这是一个无效的输入。

2 个答案:

答案 0 :(得分:0)

function isDigit(str){
var n = str.search(/^(\d)*(\.)*(\d)*$/); 
return (n!==-1);
}

来自herehere: - )

jsfiddle

答案 1 :(得分:0)

您可以使用/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/正则表达式在单个字符串中查找浮点数(因此,添加锚点)。 Source

此外,还有demo

段:

if ("12.09a23".search(/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/) != -1) {
  alert("Floating number detected! ")
}
else
{ 
  alert("Floating number not detected! Invalid data inside string: " + "12.09a23".replace(/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/g, '')) 
}