js 判定整数或者是浮点数且只有一位或者两位小数!(请教高手!)

解决方案 »

  1.   

    最简单的方法:
    取整后判断是否和原值相等!javascript的取整函数是:parseIntif(parseInt(value)==value)
    {//整数!
    }
    //正则表达式方法
    function checkRate(input)
    {
         var re = /^[0-9]+.?[0-9]*$/;   //判断字符串是否为数字     //判断正整数 /^[1-9]+[0-9]*]*$/       if (!re.test(input.rate.value))
        {
            alert("请输入数字(例:0.02)");
            input.rate.focus();
            return false;
         }
    }下面为普通函数写法function BASEisNotNum(theNum)
    {
    //判断是否为数字
    if (BASEtrim(theNum)=="")
    return true;
    for(var i=0;i<theNum.length;i++){
    oneNum=theNum.substring(i,i+1);
    if (oneNum<"0" || oneNum>"9")
    return true;
    }
    return false;
    }function BASEisNotInt(theInt)
    {
    //判断是否为整数
    theInt=BASEtrim(theInt);
    if ((theInt.length>1 && theInt.substring(0,1)=="0") || BASEisNotNum(theInt)){
    return true;
    }
    return false;
    }function BASEisNotFloat(theFloat)
    {
    //判断是否为浮点数
    len=theFloat.length;
    dotNum=0;
    if (len==0)
    return true;
    for(var i=0;i<len;i++){
    oneNum=theFloat.substring(i,i+1);
    if (oneNum==".")
    dotNum++;
    if ( ((oneNum<"0" || oneNum>"9") && oneNum!=".") || dotNum>1)
    return true;
    }
    if (len>1 && theFloat.substring(0,1)=="0"){
    if (theFloat.substring(1,2)!=".")
    return true;
    }
    return false;}
      

  2.   

     var t = 1.20;
      var reg = /^\d(?:\.\d{1,2})?$/;
      alert(reg.test(t));
      </script>
      

  3.   

    最好是先把t转为字符串, 不转t也会调它的toString()方法。
      

  4.   


    <script type="text/javascript">
    var a = 'abc';
    var b = 123;
    var c = 123.5;
    var d = 123.45;var r = /\.\d{2,}|\.$|[^0-9\.]/;document.write(a+':'+!r.test(a)+'<br/>');
    document.write(b+':'+!r.test(b)+'<br/>');
    document.write(c+':'+!r.test(c)+'<br/>');
    document.write(d+':'+!r.test(d)+'<br/>');
    </script>