提问者:小点点

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


用户可以提供任何类型的数据。我需要确保输入字符串只包含浮点数。所以我需要确保数据只包含数字或点(.),如果输入数据除了数字或点之外还有其他内容,则返回false。有人能帮我使用javascript正则表达式吗?我尝试了很多搜索。但是我找不到任何对我具体情况的帮助。

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

更新

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


共2个答案

匿名用户

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

从这里和这里:-)

jsfiddle

匿名用户

您可以使用/^[- ]?[ 0-9]*\.?[ 0-9]([eE][- ]?[ 0-9] )? $/regex来查找单个字符串中的浮点数(因此,添加锚点)。来源

另外,这是一个演示。

片段:

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, '')) 
}