判断是否是浮点数,使用下面正则表达式
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);
}

解决方案 »

  1.   

    而且,第二个即使是浮点数也check不通过吧。
    \d 等同于 [0-9]
      

  2.   

    "\\d+(\.(\\d)+)?";
    不用加个 \来做转义符号直接改成
    \d+(\.(\d)+)?";
      

  3.   

    经过测试发现
        strFloat = "\\d+(\.(\\d)+)?";
     发现上面的正则表达是不正确
     应该写为:"\\d+(\\.(\\d)+)?";.应该使用\\进行转移,不然\.表示任意一个字符但是为什么strFloat = "\\[0-9]+(\.(\\[0-9])+)?"; 可以正确check?奇怪