function checknumber(str)
{
        var i=0;
        for(i=0;i<str.length;i++)
        {      
                var s=str.substring(i,i+1);
                var flag;
                if(s.indexOf(".")!=-1){flag=true;}else{flag=false;}
                if (s<"0" || s>"9" ||flag)
                {
                        return false;
               }
        }
        return true;
}好像不能用str.charAt(i)  这种取值 对于字母不能判断正确结果!

解决方案 »

  1.   

    检查是否为实数
    function isReal (theStr, decLen) {
    var dot1st = theStr.indexOf('.');
    var dot2nd = theStr.lastIndexOf('.');
    var OK = true;if (isEmpty(theStr)) return false;if (dot1st == -1) {
    if (!isInt(theStr)) return(false);
    else return(true);
    }else if (dot1st != dot2nd) return (false);
    else if (dot1st==0) return (false);
    else {
    var intPart = theStr.substring(0, dot1st);
    var decPart = theStr.substring(dot2nd+1);if (decPart.length > decLen) return(false);
    else if (!isInt(intPart) || !isInt(decPart)) return (false);
    else if (isEmpty(decPart)) return (false);
    else return(true);
    }
    }
      

  2.   

    if(isReal(frm.Run_space.value,2)==false)
    {
       alert ( "请输入数字!" );
    frm.Run_space.focus ();
    return false;
    }
    if(checkdotnumber(frm.Oil_quantity.value)==false)
    {
    alert ( "请输入数字!" );
    frm.Oil_quantity.focus ();
    return false;
    }
      

  3.   

    楼上的两位老大,我这么分别调用两位的函数,但还是只验证数字,不知是我调用有误吗?
    (checkdotnumber即checknumber)望赐教!
      

  4.   

    还有isReal用小数调用时,提示:缺少对想!比较急,请各位老大帮忙,可另行加分(一点心意)!
      

  5.   

    function checknumber(str)
    {
            var i;
            for(i=0;i<str.length;i++)
            {
                    if ((str.charAt(i)<"0" || str.charAt(i)>"9") && str.charAt(i)<>"."))
                    {
                            return false;
                   }
            }
            return true;
    }
      

  6.   

    楼上的老大好像是ASP版的新版主吧,我试了你的方法,也是只验证数字,是我调用的问题吗?
      

  7.   

    为什么不用正则表达式呢,很简单的
    <script>
    function checknumber(str) {
    var re = /^(\d+|\d*\.\d+)$/;
    return re.test(str);
    }alert(checknumber("123"));
    alert(checknumber("123.5"));
    alert(checknumber(".123"));
    alert(checknumber("avd"));
    </script>