用户可以提供任何类型的数据。我需要确保输入字符串只包含浮点数。所以我需要确保数据只包含数字或点(.),如果输入数据除了数字或点之外还有其他内容,则返回false。有人能帮我使用javascript正则表达式吗?我尝试了很多搜索。但是我找不到任何对我具体情况的帮助。
So this should return characters for cases like
12.09a23
aa12.12
abcd
更新
我不想看输入字符串是否有浮点数。我想看看输入是否有浮点数以外的东西。例如,如果输入有12.3aa23,我想显示输入有aa,所以这是一个无效的输入。
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, ''))
}