用户可以提供任何类型的数据。我需要确保输入字符串只包含浮点数。所以我需要确保数据只包含数字或点(。),如果输入数据不是数字或点,则返回false。有人可以用javascript正则表达式帮助我吗?我试了很多次。但我找不到任何有关我具体案例的帮助。
So this should return characters for cases like
12.09a23
aa12.12
abcd
更新
我不想看输入字符串是否有浮点数。我想看看输入是否有浮点数以外的任何东西。例如,如果输入有12.3aa23,我想显示输入有aa所以这是一个无效的输入。
答案 0 :(得分:0)
function isDigit(str){
var n = str.search(/^(\d)*(\.)*(\d)*$/);
return (n!==-1);
}
答案 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, ''))
}