判断是否是浮点数,使用下面正则表达式
function isFloat(str)
{
strFloat = "\\d+(\.(\\d)+)?";
var objRegExp = new RegExp("^" + strFloat + "$","g");
return objRegExp.test(str);
}上面的正则表达式不能判断 1s2 这样的 输入值但是改成下面的正则表达式就可以check出来 ,谁知道为什么? d不就指的是数字吗?
function isFloat(str)
{
strFloat = "\\[0-9]+(\.(\\[0-9])+)?";
var objRegExp = new RegExp("^" + strFloat + "$","g");
return objRegExp.test(str);
}
function isFloat(str)
{
strFloat = "\\d+(\.(\\d)+)?";
var objRegExp = new RegExp("^" + strFloat + "$","g");
return objRegExp.test(str);
}上面的正则表达式不能判断 1s2 这样的 输入值但是改成下面的正则表达式就可以check出来 ,谁知道为什么? d不就指的是数字吗?
function isFloat(str)
{
strFloat = "\\[0-9]+(\.(\\[0-9])+)?";
var objRegExp = new RegExp("^" + strFloat + "$","g");
return objRegExp.test(str);
}
\d 等同于 [0-9]
不用加个 \来做转义符号直接改成
\d+(\.(\d)+)?";
strFloat = "\\d+(\.(\\d)+)?";
发现上面的正则表达是不正确
应该写为:"\\d+(\\.(\\d)+)?";.应该使用\\进行转移,不然\.表示任意一个字符但是为什么strFloat = "\\[0-9]+(\.(\\[0-9])+)?"; 可以正确check?奇怪