不要一个一个的判断,整体判断,速度就快了!例如判断:try {int x=Integer.ParseInt(str)}catch(Exception e){
  如果出现了异常,那么肯定含有非数字的字符哦!
}

解决方案 »

  1.   

    js的://opt1 小数     opt2   负数
    //当opt2为1时检查num是否是负数
    //当opt1为1时检查num是否是小数
    //返回1是正确的,0是错误的
    function chknbr(num,opt1,opt2)
    {
    var i=num.length;
    var staus;
    //staus用于记录.的个数
    status=0;
    if ((opt2!=1) && (num.charAt(0)=='-'))
    {
    //alert("You have enter a invalid number.");
    return 0;

    }
    //当最后一位为.时出错
    if (num.charAt(i-1)=='.')
    {
    //alert("You have enter a invalid number.");
    return 0;
    } for (j=0;j<i;j++)
    {
    if (num.charAt(j)=='.')
    {
    status++;
    }
    if (status>1) 
    {
    //alert("You have enter a invalid number.");
    return 0;
    }
    if (num.charAt(j)<'0' || num.charAt(j)>'9' )
    {
    if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0)) 
    {
    //alert("You have enter a invalid number.");
    return 0;
    }
    }
    }
    return 1;
    }
      

  2.   

    java的用 fast_time(fast_time) 的就可以,加个try,catch
      

  3.   

    最好用javascript
    不用提交页面
      

  4.   

    已经说过,不要循环判断!
    另补充一下,我作的是java.
    script已经实现过.用的就是循环,可是在java下运行较慢!请acefr() 把你的方法讲清楚!谢谢@
      

  5.   

    我也用过循环来判断呀!而且和javascript下差不多,可是我的速度不慢呀,你再看看程序,是不是那里写的不太对呀?
      

  6.   

    用JS的isNAN这个函数:
    if (isNaN(your expression)) 
       return false;
      

  7.   

    问题已经解决,是自己写程序不小心的原因!
    不过还请fft123() 和tanndy把你们的方法写清楚点,好让大家共同学习!
      

  8.   

    请fft123() 和tanndy快点把你们的方法写出来,等待揭帖!
      

  9.   

    <script language="javascript">
    function cheak()
    {
    var s= document.all.AAA.value
    alert(s);
    if (isNaN(s)) 
             {    
                 alert("请输入数字!")
                  return false;
              }
    }
    </script><body>
    <form method="POST" action="">
     <input type="text" name="AAA" value="" size="20">
    <input type="submit" value="提交" name="B1"onclick="cheak()">
    <input type="reset" value="重置" name="B2">
    </form>
    </body>
      

  10.   

    js用的是客户端的资源,不是服务器的,所以你用js是可以的。
    如果你对正则表达式熟悉的话,你可以用正则表达式直接在输入框限制。
    如果用java在服务器端判断,那么可以这么做:double d = 0.0;
    String str = request.get.....;//取到用户输入的值
    //这里可以trim()一下,防止用户输入的是空格
    if(str.length()>0)//防止输入为空
    {
        try
        {
            d = Double.parseDouble(str); //d就是你要的数字了,当然,可以是小数
        }
        catch(Exception e)
        {
         ....//表示用户输入的不是数字,这里做捕获异常的处理
        }
    }
    else 
    {
    .........//异常处理
    }
    //后面的你就可以使用d了
      

  11.   

    tanndy(ben.yu) 
    你的isNaN 估计是自己写的JS函数吧,你不把JS函数写出来,我还是不知道改怎么办!
    acefr() 
    谢谢
    你的方法我开始就是这样试的,但你怎样判断文本框中输入如:"12.0"于"12dd"的区别哪?
    我要的是只能在输入全是数字的情况下才让正确通过!
    不过,还是谢谢呢了!